how far do I have to jump in?

Are you new to 6502, NES, or even programming in general? Post any of your questions here. Remember - the only dumb question is the question that remains unasked.

Moderator: Moderators

Post Reply
Leeroyarmstrong
Posts: 3
Joined: Tue Apr 17, 2018 12:48 pm

how far do I have to jump in?

Post by Leeroyarmstrong »

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? :)
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: how far do I have to jump in?

Post by tokumaru »

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.
User avatar
rainwarrior
Posts: 8732
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: how far do I have to jump in?

Post by rainwarrior »

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.)
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: how far do I have to jump in?

Post by tokumaru »

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.
User avatar
rainwarrior
Posts: 8732
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: how far do I have to jump in?

Post by rainwarrior »

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.
User avatar
Sumez
Posts: 919
Joined: Thu Sep 15, 2016 6:29 am
Location: Denmark (PAL)

Re: how far do I have to jump in?

Post by Sumez »

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.
Leeroyarmstrong
Posts: 3
Joined: Tue Apr 17, 2018 12:48 pm

Re: how far do I have to jump in?

Post by Leeroyarmstrong »

Thank you guys for all that suggestions, I think i'm going to learn to love this community, I will take Sumez's suggestion to start coding from scratch that is true I will need to understand it before I can edit code that other people wrote, by the way is there a way to download a version that is in lua or java or something and convert it back to hex?


I can't wait to do this. I currently know to code in, java, Lua, Basic and python. so I think I can do this :mrgreen: :mrgreen: :mrgreen: :mrgreen:
Leeroyarmstrong
Posts: 3
Joined: Tue Apr 17, 2018 12:48 pm

Re: how far do I have to jump in?

Post by Leeroyarmstrong »

hey and installing cc65 I cant find the install.vbs file
Post Reply