View Single Post
Come on down to Durante's drivethru PC port fixes. 15 minutes or less. Yelp: ★★★★★

Fixed Souls, Deadly Premonition, Lightning Returns, Umihara Kawase, Symphonia, Little King's Story, PhD, likes mimosas.
(11-04-2013, 07:38 PM)
Durante's Avatar

Originally Posted by nullset2

Durante, as an aspiring programmer/software engineer, I have to ask you: why are you so awesome? How can you be this productive? My head starts spinning whenever I try to get into low-level/memory programming stuff, yet you do it like it ain't no thang. In some regards I am barely motivated, so I don't get experimenting with new tech or doing creative stuff programming-wise: here I am gnashing my teeth about this little snippet of code I tried to write to calculate the inverse of an square matrix, and in the meantime you release two alphas of great software. So, if it's possible, do you have any advice to stop sucking as a programmer and engineer? Any inspiration you have and can share?

Well, I think a few things help:
  • I've been programming now for 16 years (10 of which I studied computer science, 5 of which I also programmed professionally at the same time), and started with C 16 years ago. High-level languages are nice and all, but I believe that starting with C and implementing a linked list in your second program (and bashing your head against Segmentation Faults for weeks) when you're 13 really builds character.
  • Specifically for this type of programming (the hard part of which is mostly reverse engineering), I've been working in low-level C (and some assembly) at my job for 4 years or so now, so I know a lot about ABIs, library loading, low-level debugging (without debug symbols) and such things on multiple platforms.
  • It also helps that although I've never done it professionally, I've programmed a lot of side projects using graphics APIs over the years, and used to read developer posts on Beyond3D (back in the heyday of the early 00s) religiously, and largely kept up with it, so I know how modern games mostly do their rendering. This is vital for understanding the things that could go wrong when e.g. changing resolution, and the "flashes of insight" you gain with experience can save you literally hours or days of debugging it the hard way.
  • Also, as you mention, motivation is also really important. Here it's crucial that I have a huge ego (mostly just about my programming skill that is), which I have to admit is probably really what led me to trying to create DSfix in the first place. I posted on GAF multiple times about how I couldn't believe that the game will be resolution locked, how silly that would be and how it must be a translation error. When I was proven wrong about that, and some people made up long reasons for why such a lock could be in place, I was irked. Someone was wrong on the internet, and it fell to me to set them straight.
  • Finally, the other part next to motivation is perseverance, and I'll try to actually formulate this one as a useful tip ;). I also often see it in students, that at some point, if they hit a really hard problem, they give up or try to find a way around it. In my opinion, every time you do that you deny yourself growth as an engineer. I guess you could say, if you bash your head against a wall until it breaks you'll have a really hardened head afterwards. Or be dead. One of the two.
In conclusion, to become a better engineer/programmer, solve more problems/program more. And harder ones.

Originally Posted by Foaloal

Texture override doesn't work for me, as soon as I enable it the game crashes on startup with d3d9.dll being the "fault module".

Does it work for anybody?

I never even really tested it, just ported it straight from DSfix. I'll have a look right now.