Forgot password?
login to RetroAchievements:

Page: 1 2 3 4 5 6 7 8 >

Posted: 09 Dec, 2016 02:13
Last Edit: 16 Mar, 2017 22:19
I'm not too sure about the topic title or if it even belongs here. We're writing this just to show some notes and strategies on how we're gonna tackle this problem (so far only me, but others are welcome).

Everything begins with design, as far as I can tell, RA has no design or at least it's not very apparent.

It's a lot easier to get started with newer builds of emulators but my aim to fix what's wrong with RA and not the emus.

Get the Help File Here
Old help files are useless now since the structure changed too much

Very Helpful References
I'll put more when I find them, this first one helped me learn a lot.

Important Updates
RA_Integration builds as a standalone dll, needs testing
— Not true anymore, since I lost my progress ( awhile ago )

Stretch Goals
These ain't happening any time soon!

• My main goal is get what I have working, there's a lot of stuff to dig through ( again... =( )
• Replacing MD5 with SHA2, aka SHA-256+, OpenSSL has dozens of SSL/TLS (Secure Socket Layer, Transport Layer Security) ciphers to chose from.
• Make some of central management system for the RA frontends to resolve various issues like a launcher.

Where to get the Code

Current Plan
• Get stuff back on track.

• I might create a makefile or cmakelists.txt.
• I'm trying to make this cross platform (I always like doing that)
• I could probably just say what you'd need w/o a makefile but I'll just make one when the time comes.

Posted: 09 Dec, 2016 02:13
Last Edit: 12 Mar, 2017 21:06
Reserved for backlog...
This post will be edited frequently and stuff moved around based on the situation
The "Postpone" section shows stuff that we should be doing but would take too long when other things could be done
I'm going to put a "Best Practice" in the next post to clean this one up
Nothing is commited yet, I will say so here when I do
I'm might be able to figure things out but no one is telling me anything and I'm learning as I go
Sorry if it's not allowed but I sometimes make new post to get people's attention because we don't have sticky thread.
I felt it was misleading to put major changes because it made it sound it was completed so I got rid of that section

One thing to note: There are tons of unused variables, I'm ignoring them for now.

Community Spreadsheet
No I can't fix site things or anything server related becaues I don't have access to the database

Known Issues
Scott or someone w/ db has to fix these
• Request Latest Client doesn't work
• InstallNewsFromFile doesn't work
• Scan For games doesn't work
• All the above have error messages saying the requests are unknown.
— I'm going to guess these have more to do with the server than the service.

Current Problems
• Getting back all the lost progress ( had everything done except the GUI parts ).

• Just doing what I can
• Abstraction, abstraction, abstraction, the core of designing as a Software Engineer.
A Software Engineer and the various roles of Game Development are synonymous.

Infeasible at This Time



• Add include guards
• Get rid of all the externs for self-referential classes (I thought this was C++, not C)
• Remove unnecessary includes/usings from header files
• I didn't feel comfortable modifying md5 at all so I made a package out of it
• Separate multiple classes into different header/src files
• Move implementations from interface to implementation file
• Convert comments to XML Comments
• Investigate improper uses of assertions and replace with exception handling
• Removal of function/operator overloading with symbols declared with C linkage (resolved by moving templated vars an funcs into two different files w/o C linkage, they are global for now)
• Precompiled header support
• STL instead of ISO-C Libraries (mostly)
• Everything we shouldn't touch is a nuget package
• Post compiled help file here and repo
• Replace initial assignments ("=") with an initializer list ("{ }") to disambiguate between initialization and reassignment

Solved Problems
• Infeasibility of Modernizing Code (C++14)
— With C++14 it is now possible.
• Assertion Failures
xstring: invalid null pointer

Posted: 09 Dec, 2016 02:13
Last Edit: 11 Jan, 2017 23:31
The post looked too shitty to me so I made a .docx instead. It's my Google Drive. Writing these notes down is many for my own benefit, I'm just sharing.

You might not be able to read some stuff in preview, it's at least readable in Google Docs but best viewed in Microsoft Word.

Posted: 09 Dec, 2016 02:48
I'm just going to drop my obligatory, well worn out beg for Sega Master System and Gamegear support/cheevs.

Posted: 09 Dec, 2016 02:55
Sorry dude, I'm not really sure I can do that. I'm doing these first few things so I can learn more about the project as I go.

Posted: 09 Dec, 2016 04:43
I appreciate anything. I just like to spam my beg for that lol.

Posted: 09 Dec, 2016 16:46
I still suggest TwoMBit for possible SMS/GG stuff. It says it's Direct3D, but I recently realized that RAVBA also says it uses D3D, which I thought we couldn't use because of DirectDraw. *shrug*

Ah... I know I could either be asking something that isn't a problem, or it may be a problem and not possible to fix, but seriously - will any of this break things for me? Look, I absolutely cannot do anything about this - for my main computer, I'm stuck with Windows XP. Period. As I've said before I have a Win10 laptop that was upgraded from Win7, but it is literally half-as-powerful. I could dedicate it to strictly RA-use, but that means for playing and especially Achievement-Development-work, I would have to either get up to a much more awkward place to use the laptop any time I did RA-stuff, or worse, use that half-as-powerful laptop as my "main computer" and shelve this more powerful WinXP Desktop for no other reason than being because of RA. And if we ever got anything more powerful than GBA it probably wouldn't even play very well on that laptop. Maybe if it was quality like PJ64 or ePSXe it would run, but heavier things like Mednafen and Mupen, not so much.

I know I saw that you said it was something like a "Universal App" but you only mentioned Win7 at that point, which makes me nervous about it being anywhere near compatible for WinXP. Or it could be and I could be worried for nothing.

I did try to get VS2013 Community on this comp but if I DID get the right one(I swear they make it so incredibly difficult to search for the download you actually want and label them all very similar to each other), it of course says it won't work on XP. At worst, I might be able to get VS2013 onto that Win10 laptop and attempt to work with your code to hopefully make it compatible with WinXP.... I doubt it, I have no clue how to code other than achievement-making(as if that counted) and the teeny tiny bit of C++ I took back in High School back when it was an experimental first-attempt at teaching C++ in our High School....but if that was the only chance I'd have to make it work, I'd at least try.

Also, I'm not sure if in terms of "Design" this thread would ever lead to complete change of the GUI, but I thought of some ways to make Salsa's idea of remaking everything so the Achievement-overlay would instead be a different window, and then merge that with Developer-only Tools that would switch depending on what mode you're in. But if I'm completely written-off because of WinXP then I wouldn't really be able to help with it anyway.

Posted: 09 Dec, 2016 19:07
Last Edit: 09 Dec, 2016 19:25
Don't worry about it, if I could do it I would.

I'll try to make a version with xp support. The one in the official repo uses Windows 7.1A SDK but the compiler is VC12 with XP support. It's a little weird because Windows SDK uses .NET for runtime even though it's C++. If it didn't use Windows stuff I could probably compile it with straight up gcc/g++.

I'm pretty good at developing software if I'm there in the design stage, it takes me awhile to do "Software Change Request" if I have no idea what anything does. Plus since I'm doing this in my free time we can't use paradigms like AGILE/Scrum since there's not enough people on the same page. Nothing works yet.

I'm a major in Computer Science pretty close to graduating. We do most of our stuff in C++ but for actual projects we try to use .NET. I did do a pretty sophisticated project for a company before. It was a mobile web app using Ionic Framework (Apache Cordova) for iPhone and Android as a front-end for patients. It also used an Admin Web Portal using ASP.NET w/ a SQL Server database as the backend. We called it TeleHealth. ASP.NET (Core) is the bomb, everything you need can be done in Visual Studio and the Database can be programmed inside.

I'm mostly doing refactoring because there's a lot of inconsistencies with the code and some "bad" design practices. It's not really bad, but it's not really good either.

I barely understand this project so I'm learning as I go myself. You don't actually need Windows 10 to use it's SDK.

Posted: 10 Dec, 2016 03:42
Ahh, well if it's no trouble to make one work for XP, that would help a lot. I'm sure even if I got VS2013 working on that laptop I still wouldn't have a clue what was going on, but I'd at least try to gradually understand what I could.

That's really great that you're able to do all of that, even for a company while still learning. Honestly the most we got to in that short amount of time was just .. storing basic specific-length arrays, declaring variables with float and a few things with strings, and a whole bunch of little-stuff I've forgotten by now. Mostly I just remember we had to do a lot of redundant declarations and I would get confused when you were supposed to do that and not supposed to. But it was a first time, kind of experimental class, so there wasn't much to go by. I was also in that high school's first Visual Basic class, but that was even less useful for me. XD

Posted: 10 Dec, 2016 04:49
Last Edit: 10 Dec, 2016 22:02
I'm just refactoring it like crazy for now so it's more manageable. Gonna stop for now. Most of it still looks like spaghetti code.

I'm gonna make it truly Object-Oriented, right now it just looks like C with classes.

Posted: 10 Dec, 2016 22:45
Ended up using resharper and damn, there's more than 10,000 problems with this code by today's standards. It's ok though, it's a lot easier to use for C# and a little "slow" for C++ but it's ok.

Posted: 12 Dec, 2016 04:15
Last Edit: 12 Dec, 2016 06:48
Nevermind, the refactoring is almost done. I need to figure out why some WinAPI symbols are ambiguous.

Posted: 12 Dec, 2016 18:11
Whew, 10,000 sounds like a lot to me.. XD And would be great to have it better organized, yeah. Some day I really need to attempt to get into it at least a little, but would definitely be harder not being able to 'know where I am' and be lost in disorganized code, haha.

Posted: 12 Dec, 2016 18:20
Last Edit: 12 Dec, 2016 18:26
I'm not sure if it'll work but it'll definitely be easier to work with. Resharper helps me skip to problems. I've been putting lots of XML comments to generate API documentation. It's not really an API if an interface is self-defined. Needs to be as abstract as possible.

Posted: 12 Dec, 2016 22:07
You have made all this changes from the latest repository, do you have considerer to change the c++ 12 specifics to make it compatible with newer version, which are new requeriements for your build?
Page: 1 2 3 4 5 6 7 8 >


login to RetroAchievements:
or create a new account