News:

11 March 2016 - Forum Rules

Main Menu

Anyone get a job after rom hacking and hobbying?

Started by pianohombre, May 07, 2017, 04:39:58 AM

Previous topic - Next topic

pianohombre

I feel like perhaps I understand programming a little better after rom hacking. Never really used C++ or Assembly, or looked at hexadecimal. They should use these examples at the university level. Much more exciting than string manipulation, arrays, linked lists, stacks, and all the boring junk they teach in the classroom. I typically program the front-end or back-end of websites, but a lot of software like Wordpress has pretty much replaced my job. I mean I'm a pro so I can charge the market rate, which can be high, but for many start-ups it's just an extra fee that they don't want to deal with. While most companies liked the idea of having an IT guy around just seems like a lot are running software on 10-year old PC's and making lots of cutbacks. I actually gave my business card to this local DVD rental shop and their computer and system was running DOS lol. You go into Google or Microsoft and you probably can do a hologram interview, but most of these companies, well at least where I live between the desert and a couple lakes, not exactly Silicon Valley, simply aren't fortune 500.

I feel a lot more comfortable at least trying to deal with memory which can be hard to try and imagine. Basically, the hex and assembly show you how to manage memory better. I may end up adding this to my resume.
"Programming in itself is beauty,
whether or not the operating system actually functions." - Steve Wozniak

FAST6191

At some point after the C family became the dominant language they used to still teach assembly so as to have people better understand what was actually going on, and in turn hopefully improve their C, despite knowing most would never use it again.

On "never really looked at hexadecimal" then I find that somewhat shocking really, almost as bad as if you read a web building tutorial and they take pains to separate HTML from CSS for the modern word, though at the same time I had always just considered it a longer form of individual hex digits, and also deal a lot with data capture devices so seeing a massive array several megs long is just another day.

On "10 year old PCs" then that does land you squarely in the core2 era these days and as long as you are not encoding video, doing 3d modelling/CAD (though even then...) or something similarly demanding then they are fine. If you are just doing email, printing documents (right up to full bore layout) and web stuff then even better.

Also *waves*. I would be one of the ones installing scripts which spit out pretty functional websites, certainly enough for what most people want. I would like to believe that as I know enough to check the password function does salted hashes and can set up a server it is not as bad as some other times I take bread and butter jobs from people. On the flip side it would be trivial to get me to do my best fish impression if pressed on specifics of javascript so there is that.

But yes I have ROM hacking on my CV, partially because the thing has never actually helped me get a job so I don't care either way but also because it is a nice way to show some writing without having to worry about any NDAs I might be under.

Madsiur

I was in my first year collegial level in programming (I guess 1st year U.S. community college equivalent) when I stated ROM hacking and it kinda helped me since I already had a class learning base 2 and base 16 maths.

We have a single class of Assembly in computer science in university (simulator with 2 registers like the A and X of 65816 and like 3 processor flags). I think I'll find this class pretty easy and apply there what I've learned in Rom Hacking. I wouldn't however really bet on applying on the job market things I've learned in Rom Hacking, except maybe memory management if I end up doing C or C++.

I however have Rom Hacking on my resume in hobbies as "Assembly modifications of 16-bit era video games" and in an interview for an internship the guy asked me to give more details and seems interested. I guess my experience with C# was more relevant since they were using C# as development language but it can show you have knowledge of legacy programming and you do programming outside work, which can never be a bad thing for a programming job.

pianohombre

Quote from: Madsiur on May 08, 2017, 01:50:00 AM
I was in my first year collegial level in programming (I guess 1st year U.S. community college equivalent) when I stated ROM hacking and it kinda helped me since I already had a class learning base 2 and base 16 maths.

Yea we had a class, it was either math, or the assembly class where we needed to correctly add base 2 numbers. this became complicated when doing machine language with actual operations (for example, 1110 0110 would be add, then we'd get two numbers in binary and have to add them. Also, understanding 2's complement (negative/positive) bit became confusing. They also threw big endian/little endian conversion at us, which I've had to do in rom hacking but mainly with hex numbers. We used x86 at the university not 85816.

I've heard people say that jobs that require COBAL or FORTRAN typically pay well. Some gov't computers or programs never ported over the software even after 40 years or so so it's hard to find people for those jobs. Although, if you're 20 years old might be hard to learn the language and try to get a job without experience. Those languages would be high-level compared to assembly I guess haha.
"Programming in itself is beauty,
whether or not the operating system actually functions." - Steve Wozniak

Sliver X

My experiences ROM hacking have helped me tremendously throughout my IT career. Between having learned 6502 assembly/NES architecture and getting a degree in electronics engineering I can troubleshoot software and hardware issues with a high degree of success.

The basic logic I learned from assembly also helps me conceptualize bash/powershell/batch scripts in my head as I'm writing them as well (I do a lot of scripting in my current position). Dealing with hex also saved my ass a few times such as when I had to hack the headers in proprietary DVR files to play in a standard video player (They contained evidence in a court case the law firm I was sysadmin for was involved with).

And yes, I list 6502 and some z80/some x68000 Assembly Knowledge on my resume. While it hasn't directly landed me any of the positions I've held over the past decade it helped get my foot in the door, and I'm just general IT (Server/Network Administration along with shit like PC troubleshooting as needed).

pianohombre

I think I'll probably add some of this stuff I've worked on into my portfolio. I think a business obviously wants a programmer that can do anything, and some of this low-level stuff shows that you can do even extremely taxing and difficult problems, so you'll be prepared to sit on your ass for hours on end doing nothing in the office, but will be able to perform when need be.
"Programming in itself is beauty,
whether or not the operating system actually functions." - Steve Wozniak

Me_Dave

Romhacking is my real job, I don't do anything else I'm 36 attending college, I owe zero debt, am broke as hell,  but I don't have to work I'm disabled. Am both physically and mentally impaired.

I don't know how to program, but studying Hexadecimal I've learned a lot, I aced my math exams.. lol



The Banana of M.U.G.E.N
NES Development
They saw what 600 Member's can do, lets show them what the 34,000 can do.

pianohombre

I only really knew a little bit of this stuff, like I understood 50-60% of the terminology when reading through the documents, but when attempting to get a rom hacked the way I wanted I really needed to understand the tools, and things like offsets and how to use debuggers.

The biggest challenge for me is you know I want it to work right away, even if I don't understand it at first. You know fix first understand later. But a lot of times just brute-forcing something, or using trial and error to overcome an obstacle just wastes time. Then you've wasted an entire afternoon when you could have spent it instead brainstorming on how to solve the problem, or reading an article online on how to do it. Many times we will have to learn assembly, hexadecimal, or whatever language a program is written in to get a rom to work in the emulator the way we want it to. You can sit down and be creative about how you want a game to work, but when you sit down and realize how restrictive the tools are you may cancel a lot of ideas.

It's a good challenge to get these things to work the way you want them to, but it might also be like an obsession. It's nice when a bunch of people get together and hype a project up, and there's a bunch of excited people who have the same goal, but also I think it's pretty neat when say maybe 2-3 people spend a few years working on what seems like a simple project on the outside, but extremely complicated otherwise. These files you know can range very small to extremely large and the way they got these tiny files to work in the 80's and 90's just surprises me. Like I'm working on this game that is smaller than your average photo, but over the last month or two I've just so much about how they packed so much data in there. An example of the difficulty: I followed a project for about 5-10 years. It was a translation from Japanese to English, a game that Hideo Kojima never intended for US shores (this happens a lot in Japan), despite making several Metal Gear Solid games. Well this team was all hobbyists and they specifically put on their website that the game would not be completed any sooner with donations so didn't encourage them. When they finally finished it, it seemed very authentic and it's nice to see people complete this difficult goal without abandoning everything and just giving up.

Well anyways, I like ASM better than hex of course, but I still feel like many times higher-level language can be a hassle to follow. I'm glad so many people have made these useful utilities, which is why I'm contributing by making small changes to program recently made open-source. This stuff is tedious though, and I feel like most of the easier and important projects are done. People who completely redesign a game typically take a year or so. Sometimes they go back and do an update and make changes, it could take up to 3-5 years. That's a long time to be spending on these projects. Thanks for reading. Sorry for the long post.
"Programming in itself is beauty,
whether or not the operating system actually functions." - Steve Wozniak