Mesen Label Files
Posted: Wed Sep 19, 2018 8:50 am
Does anyone have any Mesen Label Files (.mlb) that they would be willing to share with a noob trying to learn NES Dev?
Thanks
Thanks
Thank you, that's really helpful. I'm just trying to learn how all of this stuff works. In the past when I've wanted to learn more about a new language, after reading a book or two, I go grab someone's code off of github and start figuring out what it's doing. This NES programming has been really challenging. It was super easy to get something basic running on my NES Classic, but after that I've stalled out. I have a laundry list of things I want to figure out how to do, and I'm working my way through some github examples. Part of the problem I've been having is the differences between code written with different assemblers, and using different Mappers.koitsu wrote:For reverse-engineering "stuff", I would suggest browsing over to http://www.romhacking.net/ . It's not just a site containing IPS patches of translated games; there are in fact docs on specific games which were reverse-engineered. It's less common, but it does exist. Sometimes romhacks also include readmes or technical docs/notes from those who did the REing. This is all on a per-game basis. I have seen some docs/things that contained .cdl files (for code/data logging of specific games), but in general it's rare, and romhackers don't tend to give this out by default (because the end-user tends to not care; they just want to play the translated or hacked game). You can always ask them, though! The community is surprisingly helpful and friendly, esp. to technically-inclined folk.
In general, the usual set of tools is:
1. A file splitting tool, to split a ROM up into its respective PRG banks, and/or PRG+CHR banks,
2. A disassembler -- and reading its documentation to understand how to invoke it, to give you output that's helpful
3. An emulator with an integrated debugger -- the common go-tos are Mesen, FCEUX, or Nintendulator, but there are others (see forum/other threads about this subject, as it varies per OS) -- and spending the time reading the emulator docs to get familiar with debugger behaviour and nomenclature,
4. Getting familiar with whatever mapper is used, if applicable
5. Expecting to put in VERY long hours understanding what's going on, with meticulous note-taking. This is where you will spend all of your time. Do not expect it to come easily -- it often won't, even for the experienced. I still do a lot of my notes with pencil/paper, then bring in digitally key concepts/points (usually into a .txt file) once I find something definitive.
The nesdev Wiki has a thorough list of tools and emulators; romhacking.net does as well. Understand that a good portion of tools may be from older times (late 90s/early 2000s), where MS-DOS and older Windows were common, so some you find may not work. YMMV.
I agree completely... basic 6502 programming is super easy, but the way the 6502 (particularly the NES) interfaces with everything is the real challenge. I've been coding professionally for more than 20 years, and coding games for about 15 years. The basics of the 6502 were pretty quick to learn, but then you have to understand how the PPU works, then you have to learn how memory is segmented, and how bank switching works.koitsu wrote:6502 is one thing, but the rest of the hardware and all that surrounds it is a whole other ball game.