It is currently Fri Jul 20, 2018 7:22 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 8 posts ] 
Author Message
PostPosted: Tue Apr 17, 2018 4:39 pm 
Offline

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


Top
 Profile  
 
PostPosted: Tue Apr 17, 2018 8:00 pm 
Offline
User avatar

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


Top
 Profile  
 
PostPosted: Tue Apr 17, 2018 8:30 pm 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 6420
Location: Canada
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.)


Top
 Profile  
 
PostPosted: Tue Apr 17, 2018 10:20 pm 
Offline
User avatar

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


Top
 Profile  
 
PostPosted: Tue Apr 17, 2018 11:13 pm 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 6420
Location: Canada
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.


Top
 Profile  
 
PostPosted: Wed Apr 18, 2018 5:01 pm 
Offline
User avatar

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


Top
 Profile  
 
PostPosted: Wed Apr 18, 2018 9:21 pm 
Offline

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


Top
 Profile  
 
PostPosted: Sat Apr 28, 2018 7:22 pm 
Offline

Joined: Tue Apr 17, 2018 12:48 pm
Posts: 3
hey and installing cc65 I cant find the install.vbs file


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 8 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group