6 ms·
Yes, just hacking nights and weekends. I've done my fair share of console reverse engineering, developing software for console devices (mostly GBA and NDS devel
by BaseballPhysics 3y ago
Yes, just hacking nights and weekends. I've done my fair share of console reverse engineering, developing software for console devices (mostly GBA and NDS development, but a fair bit of SMS and Genesis reverse engineering), etc, and it's seriously some of the most fun I've had as a developer. But it takes an enormous amount of tenacity to push through the inevitable challenges.
- wiz21c 3y agoThis 1000X ! I'm currently working on emulating the Apple 2+ speaker better. It's been a 2-3 spare time hours a week for about a year now :-) But the joy of working on a machine that's part of your life, without the need to please end users (which is cool too but sometimes induce pressure), well, that's basically coding like when I was a kid. Except that now I have a TON more knowledge to work with ! And, while working on disk emulation I had the pleasure ot discover those many copy protections that "prevented" me to get many games :-)
- BaseballPhysics 3y agoAbsolutely. And the other thing I love about it is the communities are typically super open and collaborative. I remember back when I first got into GBA development, there was a ton of docs, tools, libraries, and other things that folks had put together and then shared with one another. It's a lot of very passionate people sharing some very niche interests, which can be incredibly fun (of course it can also be a drama filled nightmare but such is life with passionate people).
- ravishi 3y agoTo this day I consider TONC (https://www.coranac.com/tonc/text/ https://www.coranac.com/tonc/text/) to be the greatest software project I have ever worked with. It touches everything you need to develop games for the GBA. The documentation is awesome on many levels. The book is great. I am just thankful that I found it when I was younger as that introduced me to a whole lot of critical knowledge.
- makapuf 3y agoAgreed 1000%. The issue I have is that its a bit of a shame that we don't have current fun platforms apart maybe from embedded (current gpus are closed, cpu and memory are often not a challenge if you are just a little, unless you use it for huge projects). Or am I mussing something ?
- robertwt7 3y agowhere do you start learning reverse engineering things? I'm also curious, as a software eng focusing on web stuff and api, it's getting quite boring. These things excites me but i never got to start
- hadlock 3y agoThis is a good place to start. Named "the ultimate game boy talk" dives into the CPU used, the instruction set(s) used by the CPU, how the video instruction sets work(ed) etc. The game boy from 1989 is a pretty simple device to start learning from. From there you can look at how various people emulated the system. https://www.youtube.com/watch?v=HyzD8pNlpwI https://www.youtube.com/watch?v=HyzD8pNlpwI
- joestrong 3y agoI second this. I also have a web background, and last year I started with this video, and the Gameboy is a great place to start with this sort of thing. Start making a game, and you'll soon realise how the CPU works, and making a simple emulator will start to seem very possible.
- BaseballPhysics 3y agoSo, to be clear, I spent my time reverse engineering software rather than the hardware itself. That said, my observation is that a lot of hardware reverse engineering is software reverse engineering since the software helps you understand how the hardware works (the Asahi guys literally built a hypervisor so they could watch macOS interact with hardware). And software reverse engineering is just grunt work. I'd start with a very well known existing hardware platform with a very simple CPU design--the GBA is actually a really nice platform as the ARM has a very sane ISA and it's all memory mapped I/O--and get a devkit and start experimenting by writing software to run in an emulator so you can get a feel for how the hardware works.
- saagarjha 3y agoGameBoy Advance is also nice in that whenever you get really stuck most of the answers are available online ;)
- DanielHB 3y agohow do you guys find the energy to hack nights and weekends? I do enjoy hobby programming but it takes me at least one week of vacation to detox from the work grind so I end up doing it only when I have extended vacation
- Nursie 3y agoI have spurts of this, occasionally I’ll spend a month of evenings/weekend time doing a project. It’s usually when work isn’t scratching the right sort of itch, so I scratch it elsewhere. Personal projects are often embedded coding of some sort, though I spent some time poking at the PS3 firmware when that was first cracked too. Spending months reversing and emulating a console… that takes dedication I don’t have though. I guess these guys are really itchy? Or it’s in a really hard to reach spot?
- Drakim 3y agoHonestly, it happens when I get some weird idea in my head that I can't stop thinking about, and a sort of mania takes over and gives me the energy and drive to work on it for hours on end.
- widforss 3y agoThat's about the only time I can do honest work programming. It makes me avoid doing programming tasks at work and try to find more writing-related stuff ...
- mysterydip 3y ago(not that you should take advice from random strangers on the internet, but) that sounds like classic ADHD hyperfocus to me. Giving a name to it might help in figuring out how to maximize its benefit.
- illwrks 3y agoI experience the same hyperfocus, but I don't have ADHD, I'm quite the opposite really. My background is design and when I was a child I could easily 'get lost' in various forms of art etc for hours. I've met plenty people over the years that are the same, so I'd argue it might be something more aligned with some creative and analytical thought process, and a drive etc to understand/solve the problem at hand. In terms of where to find the time, there are 24 hours in the day, at least 8 for working the 9-5.