Hello I have not downloaded anything to get started making or modding nes games, I have a pretty good knowledge when it comes to codeing so I know that its in my capability, I want to make a version of mario bros that has splits and it times you like the people that do speedruns, so my question is that a really hard thing to do or will I have to start from the basics and learn up and how long would it take?
IMO, modding games is hard because not only do you have to understand the hardware and general game architecture well, but you also have to make sense of logic that other people wrote, without any comments to help you out (unless you're hacking a game that has already been disassembled by someone else). If you hack games based on "guessing", you might end up breaking a lot of stuff without realizing, specially if you're not testing on actual hardware.
What exactly do you mean by "Mario Bros. that has splits"? Do you mean split-screen multiplayer? AFAIK, Mario Bros. takes place in a single screen, so there's no need for splits. Did you mean Super Mario Bros.? If so, than yeah, that'd be extremely hard to do. Most game engines aren't coded in a way that allows multiple instances to be run at the same time, specially considering the hardware limitations (limited RAM, CPU time, etc.), so you'd probably have to code the whole game from scratch to add a feature like that.
tokumaru wrote:
What exactly do you mean by "Mario Bros. that has splits"? Do you mean split-screen multiplayer?
Splits are a speedrunning thing. You have the time for the whole run, and divide it up into "splits" so you can see your progress on smaller segments. E.g. probably put a split timing automatically when you touch a particular flagpole, etc. So this is all just about a stopwatch feature, more or less. (It's terminology from sports. Races are divided into laps, or splits if it's not a loop.)
Oh, I see. I didn't know they were called that. Well, that's significantly simpler then, once you find a good way to display that information to the player.
Yes, counting frames is very feasible. Counting lag frames might be more difficult if the game needs to turn off NMI interrupts. I think the score display would probably be fairly easy to replace with a timer?
All of those needs are not too bad, but maybe the difficult part is SMB is packed to the gills with data. There are some mapper hacks of SMB already that might make finding space very easy though. (e.g. I think there was one that used bankswitching to make the demo play the whole game instead of just one level.)
As far as how much you need to learn... depends on what you already know, but even a relatively "small" hack like this might be a monumental effort of learning.
Yeah, it seems doable, but more complex than one might initially think. Rainwarrior already covered my two main concerns - you need to convert the game to use a mapper for more program space, and you need to ideally reorganize some code so that it doesn't need to disable NMI during frame logic. Otherwise your timer wouldn't be able to account for slowdown (the only way to measure something akin to "real time" would be by incrementing every NMI call).
Overall it's an interesting project, and probably not even bad for a first ROM hack. I think you'd need to be very familiar with 6502 code and the NES hardware before attempting it though. Even though it might seem daunting, I honestly think it's easier to start out coding something entirely from scratch before you start getting into analyzing other people's code. Especially SMB's code can be pretty daunting, but at least it's been well documented already.
hey and installing cc65 I cant find the install.vbs file