• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

Smash 64 Remake in Unity?

dpw

Smash Rookie
Joined
Apr 20, 2014
Messages
13
Hello everyone! I was wondering how many of you guys would be willing to team up and remake the Super Smash Bros 64 in Unity. I think that with a nice team we could make a great job and keep the soul of Smash 64!

We could add new characters, new stages, achievements, challenges... What do you guys say?
 

Pluid

Smash Apprentice
Joined
Mar 16, 2014
Messages
82
NNID
Pluiid
3DS FC
1435-4675-5379
It's an awesome idea, unless maybe you'd rather work with these guys to help them with their Smash 64 mod for Brawl.
But if you scrapped together enough people this, might be feasible.

what is unity
It's a game designing software if I'm not mistaken.
 

dpw

Smash Rookie
Joined
Apr 20, 2014
Messages
13
Unity is a powerful game engine! It would defnitely attend all our needs for a Smash 64 Remake. I've never heard about SDL, it's quite interesting.

But I don't think it would be the greatest option for a 3D game (I might be wrong, tho!). If enough people wish to work using SDL im fine with it anyway! As long as everyone work together.

It's an awesome idea, unless maybe you'd rather work with these guys to help them with their Smash 64 mod for Brawl.
But if you scrapped together enough people this, might be feasible.


It's a game designing software if I'm not mistaken.
Thanks for that! It looks freaking awesome and I'd love to give them a hand. Peace!
 

Madao

Moderator
Moderator
Joined
Jun 27, 2013
Messages
873
Are you a programmer? If not, it won't happen unfortunately. Hardly anyone here has the interest/ motivation to work on such a project. People here just like to stick with what they got.

The only way it'l get done is if you do most of the work yourself. If you haven't already, you should check out supersmash flash. I know it's not like smash64, but it's cool and you can learn from it.
 

Sangoku

Smash Master
Joined
Apr 25, 2010
Messages
3,931
Location
Geneva, Switzerland
Madao, that's not exactly true. I've said this plenty of times and I'll say it again: those who are willing to do something don't have the competence and those with the skills don't want to do anything.
 

Madao

Moderator
Moderator
Joined
Jun 27, 2013
Messages
873
Madao, that's not exactly true. I've said this plenty of times and I'll say it again: those who are willing to do something don't have the competence and those with the skills don't want to do anything.
True, but a lot of people I've seen who said they want to do something, never put much effort into learning. Sure there are some people who are willing to learn, but I don't see too many of those kind of people.

I had to work hard just to get certain people to do things. Telling certain individuals good advice just wasn't enough to motivate them, so i had to show them instead. I guess people really need to see it to believe it lol.

You have a good point about "those with the skills don't want to do anything", and it's really a shame tbh.
Way to be positive, Madao. A simple "no" from you would've been enough.
LOL. I'm just giving him a heads up. I basically said, if he's willing to do the work, then go for it. I'm just saying he can't rely on others too much. I'm willing to point him in the right direction if he needs help. Otherwise I wouldn't have even bothered posting in this thread lol. I'd hate for him to get his hopes up and then later be disappointed.
 

Sangoku

Smash Master
Joined
Apr 25, 2010
Messages
3,931
Location
Geneva, Switzerland
True, but a lot of people I've seen who said they want to do something, never put much effort into learning.
You're making it sound like it's something that can be learnt in a few hours. I don't know what you do in life and what you study/have studied, but I know it is very difficult for me who isn't in the computer sciences field (med).

Otherwise I agree with you with the fact he shouldn't count on help here. Doesn't mean there won't be any help, but that's not something that should be relied on.
 

Madao

Moderator
Moderator
Joined
Jun 27, 2013
Messages
873
I don't mean to sound totally negative guys.

But yeah, Madao. That was just kinda mean.
I don't get what's mean about my post. I'm just warning him of some problems he may face. What I said about people sticking to what they got is true. There's no reason that people still stick to PJ64k when there's better online emulators that desync a lot less. I could go on and on, but my point was that he has to rely on himself if he expects this project to happen. If it's something he doesn't have much time for, then forget it.That's life man. Nobody is going to do the work for you (most of the time). I've had a lot of things I wanted to see happen, that I will never see happen, unless I devote the time into doing it myself. Anything negative I say is from my own experiences. Don't forget that I did give him advice. Looking at similar projects will help him a lot, if he decides to work on this project.
You're making it sound like it's something that can be learnt in a few hours. I don't know what you do in life and what you study/have studied, but I know it is very difficult for me who isn't in the computer sciences field (med).

Otherwise I agree with you with the fact he shouldn't count on help here. Doesn't mean there won't be any help, but that's not something that should be relied on.
Well I guess I need to improve my comunication skills lol. I understand people live busy lives, so I don't blame people if they don't have the time to put into learning this stuff. I honestly think I spent too much time trying to learn certain things. So now I'm trying to cut down on that. Learning programming or hacking is very difficult for beginners. That being said, I'm willing to help people learn.

A good amount of people I've encountered who said they wanted to learn, did not even attempt to spend any time learning.
 
Last edited:

anikom15

Smash Apprentice
Joined
Jun 16, 2014
Messages
180
Location
Southern California
I code, though I've never done anything in 3D beyond toy programs.

Given the amount of mechanical details and the nuances of the original game, using an engine like unity would not be much help since the physics would have to be heavily modified and tweaked. It would require a great deal of manhours. We'll need artists and composers, too.

Basically, by the time you get it all done, you'll have put in the same amount of work as you would have for something completely original that you could actually sell and make money.
 

Madao

Moderator
Moderator
Joined
Jun 27, 2013
Messages
873
I code, though I've never done anything in 3D beyond toy programs.

Given the amount of mechanical details and the nuances of the original game, using an engine like unity would not be much help since the physics would have to be heavily modified and tweaked. It would require a great deal of manhours. We'll need artists and composers, too.

Basically, by the time you get it all done, you'll have put in the same amount of work as you would have for something completely original that you could actually sell and make money.
Lol you're an interesting poster :D . That last sentence is especially true. Time is money!

I think I know a better option tbh. Instead of remaking the game in unity, why not reverse engineer the game enough to the point where you statically recompile and optimize it for PC. I've looked at some really interesting work lately. Not only will you practically have an exact replica, but you may actually save time! At the very least, I think you'll learn a lot more from doing this method, than attempting to make one in unity.

@ dpw dpw , any updates on this?
 

Komotonoto

Smash Journeyman
Joined
May 13, 2012
Messages
422
Location
5h17c490
I would help any way I can. I barely know C so idk if that helps. But thanks to me and Madao we got dat YOUNG hitbox mode on console. PWN
 

clubbadubba

Smash Master
Joined
Apr 27, 2011
Messages
4,086
Never heard of unity but my job is programming in java/javascript. After some quick research Unity looks pretty similar to js? I generally don't have a lot of time but I'd be willing to do something here and there if you're in need of manpower.
 

dpw

Smash Rookie
Joined
Apr 20, 2014
Messages
13
Lol you're an interesting poster :D . That last sentence is especially true. Time is money!

I think I know a better option tbh. Instead of remaking the game in unity, why not reverse engineer the game enough to the point where you statically recompile and optimize it for PC. I've looked at some really interesting work lately. Not only will you practically have an exact replica, but you may actually save time! At the very least, I think you'll learn a lot more from doing this method, than attempting to make one in unity.

@ dpw dpw , any updates on this?
FIrstly, sorry for my late reply!

Secondly, yes, I am a programmer student. I've started with C in college then I sticked to Java. I simply love programming and I am always willing to learn absolutely anything new related to programming. Even though I do not have the skills (yet) to develop a Smash Bros for Unity, if I have a nice team/teacher/motivation, I am totally putting 100% effort into it and I WON'T stop until I do it. Fortunately, motivation is not a problem for me - as long as there is a solid need/goal!

I really, really, really want to learn how to hack a N64 game, Smash Bros in our case! I have absolutely no idea on how to do it, and I'm not sure if you do and would be willing to teach or help me with that. In fact, my first plan of a Smash 64 Remake was to mod the rom itself, I even thought about making a Java/C/C#/whatever program to read a N64 game and give me back some sort of source-code or anything (extremely difficult, yes, but not impossible!!!) to help me/other programmers to mod the game. I even downloaded a few N64 hacking tools (no, not cheat engine lol XD) but well, no success at all.

Any tips about reverse engineer? Going even further sir, why not coding a software to let the programmer/user modify the Smash 64 ROM and work on it? I do believe that as a team we can achieve anything. Thank you for your attention and reply, dude!

Peace!

Never heard of unity but my job is programming in java/javascript. After some quick research Unity looks pretty similar to js? I generally don't have a lot of time but I'd be willing to do something here and there if you're in need of manpower.
You are totally right, bro! Unity can be coded using C#, JS and another language which I forgot!

I would help any way I can. I barely know C so idk if that helps. But thanks to me and Madao we got dat YOUNG hitbox mode on console. PWN
Deal, dude! I will let you know!
 
Last edited by a moderator:

Madao

Moderator
Moderator
Joined
Jun 27, 2013
Messages
873
I'm surprised this many people haven't heard of Unity.
Secondly, yes, I am a programmer student. I've started with C in college then I sticked to Java. I simply love programming and I am always willing to learn absolutely anything new related to programming. Even though I do not have the skills (yet) to develop a Smash Bros for Unity, if I have a nice team/teacher/motivation, I am totally putting 100% effort into it and I WON'T stop until I do it. Fortunately, motivation is not a problem for me - as long as there is a solid need/goal!!
Ok that's good. So with enough time, you can achieve your dream. Imo C > Java :D . You have motivation and I like that.
I really, really, really want to learn how to hack a N64 game, Smash Bros in our case! I have absolutely no idea on how to do it, and I'm not sure if you do and would be willing to teach or help me with that. In fact, my first plan of a Smash 64 Remake was to mod the rom itself, I even thought about making a Java/C/C#/whatever program to read a N64 game and give me back some sort of source-code or anything (extremely difficult, yes, but not impossible!!!) to help me/other programmers to mod the game. I even downloaded a few N64 hacking tools (no, not cheat engine lol XD) but well, no success at all.
Well, it sounds like your ultimate goal is to decompile the game. While it's not impossible, it is pretty difficult. By the time you're able to do this, you'll have practically studied everything about the game anyway. Not to say it's useless, but it you should not attempt this just for the sake of convenience, because it's nothing but convenient to decompile a game.

Any reason why you haven't tried cheat engine? It'll be a valuable tool for the kind of stuff you're into.
Any tips about reverse engineer? Going even further sir, why not coding a software to let the programmer/user modify the Smash 64 ROM and work on it? I do believe that as a team we can achieve anything. Thank you for your attention and reply, dude!

Peace!
My best advice is to push your brain to the limit. Spend your time wisely. Be as creative as possible. Try new things any time ideas pop up in your head. Learn from your mistakes. Write a lot of things down, including things you learn.

Also you are going to have to learn assembly if you want to do any real hacking. As far as tools for n64 hacking, it depends on the rom. For SSB64, the only thing you got is a decompressor and possibly a compressor, the rest you're on your own. The reason I haven't made a software for modifying Smash64 is because 1, nobody has even bothered trying to modify it. 2 since i'm pretty much on my own, I'm better off just manually hex editing it myself, than making a tool to do stuff I can already do. So there's no reason to make a tool if I'm the only one using it. I've made tools (like a calculator) in the past, and I really don't know if anyone has really used it, beyond a few minutes of checking it out. It's obvious that some people are completely unaware of its existance.

Honestly all you need is a compressor, decompressor, hex editor, Nemu64, and (optionally) cheat engine / any memory editor. If you're deadset on decompiling the game, then study the N64 cpu very well, then you can write an interpreter that reads CPU instructions, and converts them to native code. The problem is, you have to know what sections of the game are cpu instructions, and what part is just data. Some other good advice I can give you is to take advantage of what's already been made / done.

Unfortunately I have my own set of ambitious goals I want to achieve, so I don't have much time for other things. That being said, Idk how much I can help you, but I'll at least help out with information and maybe debugging too.

You should contact @ S Studstill . He may not be very knowledgable yet, but he's very motivated. I don't think he's interested in this unity idea, but he wants to fully reverse engineer the game.

I say you should do a lot of reverse engineering first, then later on, it will be clear to you what to do from there.
 

dpw

Smash Rookie
Joined
Apr 20, 2014
Messages
13
I'm surprised this many people haven't heard of Unity.
Honestly all you need is a compressor, decompressor, hex editor, Nemu64, and (optionally) cheat engine / any memory editor.
That's good to know! Thanks!! But why exactly Nemu64 and not project 64?
 

Shears

Smash Master
Joined
Mar 13, 2008
Messages
3,146
Location
disproving indeterminism
Lol you're an interesting poster :D . That last sentence is especially true. Time is money!

I think I know a better option tbh. Instead of remaking the game in unity, why not reverse engineer the game enough to the point where you statically recompile and optimize it for PC. I've looked at some really interesting work lately. Not only will you practically have an exact replica, but you may actually save time! At the very least, I think you'll learn a lot more from doing this method, than attempting to make one in unity.

@ dpw dpw , any updates on this?
As far as reverse engineering goes, I just spent a few minutes with studstill looking at the rom instructions in hex. All I need is the datasheet with the mips instructions and I could very easily walk through each instruction and see exactly whats happening. It would obviously cost a lot of time that I may not have, but the degree of difficulty is very low.
 

anikom15

Smash Apprentice
Joined
Jun 16, 2014
Messages
180
Location
Southern California
As far as reverse engineering goes, I just spent a few minutes with studstill looking at the rom instructions in hex. All I need is the datasheet with the mips instructions and I could very easily walk through each instruction and see exactly whats happening. It would obviously cost a lot of time that I may not have, but the degree of difficulty is very low.
Just disassemble it.
 
Last edited:

Shears

Smash Master
Joined
Mar 13, 2008
Messages
3,146
Location
disproving indeterminism
Just disassemble it.
That has been done. I just need a list of what every command does and its syntax. For example, "SRLV R2, R0, R0" off the top of my head I don't know what SRLV is so I would need to refer to the datasheet, then knowing what the command does I need to look at what the parameters are to know how this operation is affecting registers R2 and R0. This isn't your Z80 assembly that you used to program your TI-83 calculator with 8 different operations, theres a lot more commands and operations available for use with the 64 and the command library is needed to easily reverse engineer the code. Stop being an amateur programmer that took a class and knows a couple words and has the vocabulary to critique but doesn't have the skill level to solve and be constructive, and instead be either silent or a proficient programmer that actually does what is needed by this community.

"Just disassemble it", ok thanks Copernicus, with your grace and mercy and supreme knowledge of how everything works can you pity us and just disassemble it and solve our problems since we clearly don't know what we're doing and could never succeed without you.

Theres plenty of people on these boards who don't have the capacity to do this for several different reasons, time, knowledge, intelligence, interest, money, etc. but none of them bother criticizing or throw in useless comments or demand results and for that they are not judged or looked down upon or anything because they're here for smash and thats all that matters and they would be grateful for what can be done but don't have expectations for it. If you are going to involve yourself in discussions involving technical and engineering aspects of the game and it is not out of inquiry and interest but to submit your intellectual authority then I challenge you to do it yourself.

"Humility isn't denying your strengths or not actively taking credit for the work you have done, but it is using those strengths to help the people that need them." -Shears circa 2004
 
Last edited:

dpw

Smash Rookie
Joined
Apr 20, 2014
Messages
13
@ Shears Shears , is there a software for disassemble-ing? Also, is there any sort of material/topic about N64 rom hacking (smash bros only actually) that I could study from? :) Thank you!
 

Shears

Smash Master
Joined
Mar 13, 2008
Messages
3,146
Location
disproving indeterminism
@ Shears Shears , is there a software for disassemble-ing? Also, is there any sort of material/topic about N64 rom hacking (smash bros only actually) that I could study from? :) Thank you!
@ Madao Madao and @ S Studstill are much more knowledgeable about the resources available and the documentation. I know nemu64 is good for dumping the rom and disassembling it. Studstill actually gave me a link to a tutorial on doing this. I'm one of those people that lacks the time and interest in whole heartedly doing any of this but I'd be glad to help out when I have the time. I don't feel like hunting for documents and datasheets or pulling out each hex instruction and/or converting anything, but if someone gets their hands on the assembly code and the instruction table, I'll gladly go through it and identify subroutines and what does what.

http://www.orbitaldecay.com/

This is the site Studstill shared with me. The N64 tutorial is at the bottom. The guy does a good job explaining what to do and why. I recommend you have an understanding of hex/decimal/binary conversions, differences between signed and unsigned numbers, assembly programming, registers, memory, and the basics of computer architecture and how computers handle instructions and how computers make computations. Oh and arithmetic, logic, and set theory will be helpful in understanding the operations of each instruction and how it changes game states, registers, and memory addresses. Its basically all the stuff you would learn in an introduction to computer engineering class or if you were a programmer back in the 1960s. This isn't HTML, it isn't C++, it isn't high level programming, its low level machine code basically written in math (which is why computers are called computers, because they basically just do math and compute, even today they're just doing math that looks fancy and colorful).

If you want to learn and understand the concepts mentioned above that will be helpful in making the process of hacking and modding roms more swift and simple, google and read the wikipedia articles about each thing. There isn't a better resource and study guide than wikipedia.

http://en.wikipedia.org/wiki/Assembly_language
http://en.wikipedia.org/wiki/Hexadecimal
http://en.wikipedia.org/wiki/Memory_management
http://en.wikipedia.org/wiki/Processor_register

If you do decide to start programming it and have begun actual work with coding, let me know, because if thats underway you will definitely have my help and attention.
 
Last edited:

Madao

Moderator
Moderator
Joined
Jun 27, 2013
Messages
873
Lol I'm glad I decided to delay my post. I somehow didn't understand what was said :D .
That's good to know! Thanks!! But why exactly Nemu64 and not project 64?
Simply because its debugger > PJ64's by miles. Sad thing is, its emulator core is faster too. The only reason it uses more cpu is simply because it never implemented a frame limiter.
As far as reverse engineering goes, I just spent a few minutes with studstill looking at the rom instructions in hex. All I need is the datasheet with the mips instructions and I could very easily walk through each instruction and see exactly whats happening. It would obviously cost a lot of time that I may not have, but the degree of difficulty is very low.
http://en.wikipedia.org/wiki/MIPS_instruction_set

http://math-atlas.sourceforge.net/devel/assembly/mips-iv.pdf

I had other links, but I couldn't be bothered to try finding them again ;/ .

One thing I haven't managed to find, was a good way to convert assembly code to hex. I downloaded this one program that can do it, but it's missing floating point instructions ;/ . So what I end up doing is just using Nemu for that lol. Sorta inconvenient, but it works. Too bad my Nemu64 doesn't work anymore so no more debugging for me. Maybe one day, I'll complete my bootleg mips hex encoder.

Honestly there are only 2 reasons for people not to do this stuff. Time & interest.

Lol if you're serious about it, I'd like you to analyze Captain Falcon's Up B :D . I had to step through thousands of instructions just to find the data for it. Or you could look at things like ground or wall collision. That sin / cos formula was ridiculously long!

I recommend you briefly read through the instruction set, then just debug. Don't treat it like a school subject where you have to memorize everything for a test. I was like "wow it'l be a hassle memorizing it". Then sure enough one day I was like "wow I can't beleive i effortlessly memorized most of these instructions".

Pay attention to the values of registers, when stepping through instructions.
 

dpw

Smash Rookie
Joined
Apr 20, 2014
Messages
13
Wow, that Nemu 64 is pretty cool! So you can actually change the Hex codes and it has some effect, it's awesome!

I will experiment some stuff today and I will update if I manage to do something cool :)

PS:. Would it be possible, for example, to change some Text in game via N64 hacking? are there any limits?
 
Last edited:

Madao

Moderator
Moderator
Joined
Jun 27, 2013
Messages
873
Wow, that Nemu 64 is pretty cool! So you can actually change the Hex codes and it has some effect, it's awesome!

I will experiment some stuff today and I will update if I manage to do something cool :)

PS:. Would it be possible, for example, to change some Text in game via N64 hacking? are there any limits?
Depends. If the game is using actual text, it's as simple as changing the hex. Some hex editors let you type in ascii, so that's very easy. I think smashbros uses pictures though. It's not impossible to change, but certainly harder than changing text.

Right now, the biggest challenge is simply putting it all back together, after decompressing and editing the rom. If the size isn't exactly equal to the original, you have to do a lot of work, manually changing addresses.

When using Nemu, I highly advise you not to use the default gfx plugin.

Pretty much anything within the limits of N64, is possible to do. So that means, you couldn't realistically put HD textures into a game and expect to run it on console.
 

Shears

Smash Master
Joined
Mar 13, 2008
Messages
3,146
Location
disproving indeterminism
Right now, the biggest challenge is simply putting it all back together, after decompressing and editing the rom. If the size isn't exactly equal to the original, you have to do a lot of work, manually changing addresses.
Do they really do a checksum of the entire rom? Or is there an initial value read that is the length of the rom so the processor knows how much to read and load and how much memory to allocate and its just a matter of updating this value to the new length?
 

Madao

Moderator
Moderator
Joined
Jun 27, 2013
Messages
873
Do they really do a checksum of the entire rom? Or is there an initial value read that is the length of the rom so the processor knows how much to read and load and how much memory to allocate and its just a matter of updating this value to the new length?
The checksum is only a certain length. I forgot how much, but it's not that big. Also, a lot of files use alignment, so there's almost always extra space. If you notice, N64 roms are usually exactly 8mb, 16mb, or 32mb, but if you look in hex editor, you'll usually see some empty space at the bottom. What's interesting is that the PAL version of SSB64 has 32mb, yet a good chunk is empty.

Checksum isn't a problem. You can just use rn64crc.exe which comes with gedecompress.

The problem I was talking about is that there are sections of data in the ROM. I beleive the ROM is actually a bunch of files combined, so take Fox's character stats for example. Lets say the start of the compressed data location for it is at 0x633400, and the size of the compressed data is originally 0x2C6. If I edit and recompress, it's likely not going to be the same size, so I think you would have to change the offsets of every single file that comes after it, if the new size is bigger. Not to mention the possibility of other pointer addresses needing to be modified.

There may be a simpler way to do it, but who knows.
 

Shears

Smash Master
Joined
Mar 13, 2008
Messages
3,146
Location
disproving indeterminism
The checksum is only a certain length. I forgot how much, but it's not that big. Also, a lot of files use alignment, so there's almost always extra space. If you notice, N64 roms are usually exactly 8mb, 16mb, or 32mb, but if you look in hex editor, you'll usually see some empty space at the bottom. What's interesting is that the PAL version of SSB64 has 32mb, yet a good chunk is empty.

Checksum isn't a problem. You can just use rn64crc.exe which comes with gedecompress.

The problem I was talking about is that there are sections of data in the ROM. I beleive the ROM is actually a bunch of files combined, so take Fox's character stats for example. Lets say the start of the compressed data location for it is at 0x633400, and the size of the compressed data is originally 0x2C6. If I edit and recompress, it's likely not going to be the same size, so I think you would have to change the offsets of every single file that comes after it, if the new size is bigger. Not to mention the possibility of other pointer addresses needing to be modified.

There may be a simpler way to do it, but who knows.
When you are editing these roms, I'm guessing you're editing the hex instructions as they are and then attempting to run it again? That could run you into these issues of the game reading things incorrectly because its all shifted. What should be done is the whole game disassembled back into its assembly code, then the code edited, run through an assembler, and then loaded. What happens is, when the code is assembled there are loops that are unrolled, jumps referenced to specific locations in the instruction memory, precalculated register and fixed values, etc. that when you just edit hex code or insert a new hex instruction at run-time, you are interfering with what the machine expects to execute. If it assembles and says at instruction 0x1A4 execute instructions 0x1B4-0x1C0 then return to 0x1A8, well if you've inserted an instruction that shifted everything down, the instruction at 0x1A4 saying to jump to 0x1B4 isn't updated to account for the shift to say 0x1B8. Thats why inserting instructions or removing them at run-time is a bad idea, while manipulating them isn't as much. Also, has there been any luck with figuring out how the interrupt handlers work and what registers they update?

Now I know this isn't an easy task and it would be much easier if we had their source code or could separate the character and stage files and manipulate them individually without trying to make changes to the engine or game mechanics. I honestly see the cost and burden of this to be much more than any possible gains. In fact, I'm not sure what most people's plans or intentions are with modding and hacking the game other than to flex their technical muscles. Its unlikely any work would be adopted by the community as the standard for competitive play. Adding features like in-game recording, or improved graphics, or online play are more work to be done through hacking as opposed to just creating external applications that kind of piggy back on top of the game and achieve the same result. Gameshark can already give us significant changes and mods to the game that doesn't require reinventing the wheel. The new character and stage idea is interesting but I think the easiest way to do that would be identify a character or stage file, copying it, and then manipulating the copy. As far as internally keeping track of achievements and challenges, it might be more work than its worth. Honestly, creating a site for people to post challenges and report results and going by peoples word or having them upload videos for proof is a much easier design that can reach a very similar result.

I'm not trying to be a debbie downer, but the more I think about it the more I'm with Madao in saying, if you want it done you're going to have to do most of it yourself because the work is over the heads of most people here and those that have the ability, don't have the interest or time. Its a really cool idea and it would be awesome if its done, but its easier to dream than to do. Its like that farfetched solar freaking roadways youtube video some guy made. Speciously, its awesome, but when you really look at its cost effectiveness, feasibility, and possibility, there are much better alternatives and a lot of pitfalls that are never thought of when you're hyped up with an interesting idea.

Its like you and your friends come up with this crazy great idea of going on this wild road trip for spring break and having all this fun and you guys sit down and plan all your activities and say, hey lets do this, or yeah lets do that, and you get super excited and everyones on board. For days everyones talking about it until one day someone is like lets actually make this a reality. So you start looking at schedules, and you can't really find the time for everyone to be able to do the same trip the same week. Then you start looking at expenses and travel time and all these other costs and you're like, **** this is going to be a lot more of an investment and chore than I thought it would be. And then you start getting your doubts that maybe what you imagined would happen may not happen and you could spend all this money and all these hours on something that may not work out the way you planned and all that awesomeness you had before was really just impulse and dreams are just dreams, not reality.
 
Last edited:

Studstill

Smash Ace
Joined
Mar 16, 2014
Messages
807
Man, LMAO @ Solar roadways. This is so much more realistic than Solar Roadways. Man that is so dumb.
 

Madao

Moderator
Moderator
Joined
Jun 27, 2013
Messages
873
When you are editing these roms, I'm guessing you're editing the hex instructions as they are and then attempting to run it again? That could run you into these issues of the game reading things incorrectly because its all shifted. What should be done is the whole game disassembled back into its assembly code, then the code edited, run through an assembler, and then loaded. What happens is, when the code is assembled there are loops that are unrolled, jumps referenced to specific locations in the instruction memory, precalculated register and fixed values, etc. that when you just edit hex code or insert a new hex instruction at run-time, you are interfering with what the machine expects to execute. If it assembles and says at instruction 0x1A4 execute instructions 0x1B4-0x1C0 then return to 0x1A8, well if you've inserted an instruction that shifted everything down, the instruction at 0x1A4 saying to jump to 0x1B4 isn't updated to account for the shift to say 0x1B8. Thats why inserting instructions or removing them at run-time is a bad idea, while manipulating them isn't as much. Also, has there been any luck with figuring out how the interrupt handlers work and what registers they update?
I usually just hex edit. It is a hassle erasing instructions. Lol if I was solely just changing instructions, then LemASM would be more convenient, but since I'm also changing data and searching for data, Hex editor is more convenient in some cases. I have a quick MIPS to hex encoder anyway. I need to implement FPU instructions though, but that can wait for when I actually get serious with this. I've lost interest tbh, simply by the fact that I can't get help from very many people. I feel like it's time for me to move on, which is what I'm doing. I might as well pursue more ambitious goals. I usually just replace instructions. Like I'll NOP out conditional jumps, for things like Hitbox mode check. When using a recompiler cpu, NOP's usually generate no instruction anyway lol.

Idk much about interrupt handlers. Have you debugged with Nemu64 yet? Fortunately I got mine working again, although I'm still annoyed that Jabo's plugins don't work for me anymore. I'd hate to be stuck with the default plugin. If you decide to use LemASM, just know that their crc calculator doesn't work for SSB64. I had trouble with that, a few months back.
Now I know this isn't an easy task and it would be much easier if we had their source code or could separate the character and stage files and manipulate them individually without trying to make changes to the engine or game mechanics. I honestly see the cost and burden of this to be much more than any possible gains. In fact, I'm not sure what most people's plans or intentions are with modding and hacking the game other than to flex their technical muscles. Its unlikely any work would be adopted by the community as the standard for competitive play. Adding features like in-game recording, or improved graphics, or online play are more work to be done through hacking as opposed to just creating external applications that kind of piggy back on top of the game and achieve the same result. Gameshark can already give us significant changes and mods to the game that doesn't require reinventing the wheel. The new character and stage idea is interesting but I think the easiest way to do that would be identify a character or stage file, copying it, and then manipulating the copy. As far as internally keeping track of achievements and challenges, it might be more work than its worth. Honestly, creating a site for people to post challenges and report results and going by peoples word or having them upload videos for proof is a much easier design that can reach a very similar result.
Fortunately, finding the specific data actually isn't hard, once you've found the location in RAM. All you have to do is simply search for a specific value.

I definitely agree with you about external applications being a lot easier. I do that myself actually. Rather than going through a bunch of hoops to display combo counter, why not make an external one :D . That's what the Japanese did. I did a much simpler implementation, but mine only displays it for 1 person. It's so easy to modify character moves in runtime, since it's all decompressed for you :D . What's even better than gameshark is an external memory editor. For improved graphics, I'd much rather just use texture packs :D . I'm honestly just interested in character and stage hacks. I suppose gameshark would suffice for my stage stuff, but not character data.
I'm not trying to be a debbie downer, but the more I think about it the more I'm with Madao in saying, if you want it done you're going to have to do most of it yourself because the work is over the heads of most people here and those that have the ability, don't have the interest or time. Its a really cool idea and it would be awesome if its done, but its easier to dream than to do. Its like that farfetched solar freaking roadways youtube video some guy made. Speciously, its awesome, but when you really look at its cost effectiveness, feasibility, and possibility, there are much better alternatives and a lot of pitfalls that are never thought of when you're hyped up with an interesting idea.

Its like you and your friends come up with this crazy great idea of going on this wild road trip for spring break and having all this fun and you guys sit down and plan all your activities and say, hey lets do this, or yeah lets do that, and you get super excited and everyones on board. For days everyones talking about it until one day someone is like lets actually make this a reality. So you start looking at schedules, and you can't really find the time for everyone to be able to do the same trip the same week. Then you start looking at expenses and travel time and all these other costs and you're like, **** this is going to be a lot more of an investment and chore than I thought it would be. And then you start getting your doubts that maybe what you imagined would happen may not happen and you could spend all this money and all these hours on something that may not work out the way you planned and all that awesomeness you had before was really just impulse and dreams are just dreams, not reality.
It's refreshing to see someone agree with me on this issue. People think I'm wrong, but honestly, anyone with an IQ >= 100 can do it. They just lack time, patience, or interest. For me, time is a big issue. I think motivation is the main issue for most people. People may say it's too difficult, but a good amount of them have not put much time into it. If you look at other n64 games that have been hacked, you'd see that it's not impossible to even achieve ambitious goals. Even I would have never imagined a SM64 multiplayer hack! There's just not enough people involved in this scene.

Lol I wish someone made that hack for Kingdom Hearts or Star Ocean!

I think the most important thing is to have realistic expectations. If you know you can get something done in a reasonable time-frame, then that is a good sign. Hopefully @ S Studstill can push his brain to new limits, because he's one of the only people I see here with a ton of motivation. He's a beginner right now though, so I'm not sure what he will be able to accomplish. I'm working with him, teaching him some of the stuff I know. Hopefully he can prove me right that the issue is motivation and not difficulty. I'm also glad that @ dpw dpw is a programmer. That means there's a better chance of him accomplishing his goal.

I had to do a lot on my own, but that didn't stop me. I was determined to accomplish my goals (like hitbox mode) :D . The more people involed, the more that can get done. What I like about working together is, you could excel in one thing while someone else excels in another. I remember I took an ASP.net class that I struggled in, but I worked together with a partner the whole time. I would be good at certain things and he'd excel in other things. We saved each other so many hours and both ended up getting A's. A lot of people dropped the class. Who knows what my grade would have been, if I was on my own.
 
Last edited:

anikom15

Smash Apprentice
Joined
Jun 16, 2014
Messages
180
Location
Southern California
That has been done. I just need a list of what every command does and its syntax. For example, "SRLV R2, R0, R0" off the top of my head I don't know what SRLV is so I would need to refer to the datasheet, then knowing what the command does I need to look at what the parameters are to know how this operation is affecting registers R2 and R0. This isn't your Z80 assembly that you used to program your TI-83 calculator with 8 different operations, theres a lot more commands and operations available for use with the 64 and the command library is needed to easily reverse engineer the code. Stop being an amateur programmer that took a class and knows a couple words and has the vocabulary to critique but doesn't have the skill level to solve and be constructive, and instead be either silent or a proficient programmer that actually does what is needed by this community.

"Just disassemble it", ok thanks Copernicus, with your grace and mercy and supreme knowledge of how everything works can you pity us and just disassemble it and solve our problems since we clearly don't know what we're doing and could never succeed without you.

Theres plenty of people on these boards who don't have the capacity to do this for several different reasons, time, knowledge, intelligence, interest, money, etc. but none of them bother criticizing or throw in useless comments or demand results and for that they are not judged or looked down upon or anything because they're here for smash and thats all that matters and they would be grateful for what can be done but don't have expectations for it. If you are going to involve yourself in discussions involving technical and engineering aspects of the game and it is not out of inquiry and interest but to submit your intellectual authority then I challenge you to do it yourself.

"Humility isn't denying your strengths or not actively taking credit for the work you have done, but it is using those strengths to help the people that need them." -Shears circa 2004
All right Mr. Humble. Didn't realize I needed to spell it all out for you. You should be able to find a Nintendo Developer's Manual on the internet that has details about the code. You could also probably find technical documentd from the chip manufacturers themselves. I figured you knew how to do that because that's how people read assembly.

You said you read the hex, so I thought you wanted a document that lists hex numbers for all the opcodes. You extrapolated something else from my post. I didn't mean to be haughty at all.

I shouldn't even post this, but I will. I don't know if it's useful, but srsly it's your job to find your own information. It's one thing to need help, but you could've found that Wikipedia article with Google in five seconds.

(Link has been removed. Finding it is left as an exercise for the reader.)

Jk, http://www.zophar.net/fileuploads/2/10655uytsm/N64ops03.txt
 
Last edited:

Shears

Smash Master
Joined
Mar 13, 2008
Messages
3,146
Location
disproving indeterminism
All right Mr. Humble. Didn't realize I needed to spell it all out for you. You should be able to find a Nintendo Developer's Manual on the internet that has details about the code. You could also probably find technical documentd from the chip manufacturers themselves. I figured you knew how to do that because that's how people read assembly.

You said you read the hex, so I thought you wanted a document that lists hex numbers for all the opcodes. You extrapolated something else from my post. I didn't mean to be haughty at all.

I shouldn't even post this, but I will. I don't know if it's useful, but srsly it's your job to find your own information. It's one thing to need help, but you could've found that Wikipedia article with Google in five seconds.

(Link has been removed. Finding it is left as an exercise for the reader.)

Jk, http://www.zophar.net/fileuploads/2/10655uytsm/N64ops03.txt
Thats exactly what I said I wasn't going to do. I wasn't going to go google searching and digging around the internet for the documentation. Thats what you are for as evidenced by the link you posted.

Good job. Now go fetch the Nintendo Developers Manual.
 
Last edited:

Studstill

Smash Ace
Joined
Mar 16, 2014
Messages
807
Alright alright. You crazy kids. Let`s try to break the SB mold and get along and stuff.
Anikom, skype me, braaaaa.
chris.studstill (the one from SC, or the one with the ruggedly handsome Smash God profile pic)

Shears, I got tentative confirmation on carpooling from Star King. Also on hotel sharing, apparently the choices are 93/143, $.
I`d prefer to stay in the hotel (more smash) but can stay with friends if you guys don`t wnat to split a room.
Zenith should be a good point to clarify what exactly we want to do, but anyone who wants to help, regardless of noob or couth status is welcome. Ya hear, Shears/Madao, lol?

What happened between Madao/Phox? Why is @KnitePhox so absent from these talks?
 
Last edited:

anikom15

Smash Apprentice
Joined
Jun 16, 2014
Messages
180
Location
Southern California
If you aren't gonna bother to Google ****, what makes me think you're gonna bother to spend hours reverse engineering an N64 game, a console almost as complicated as a cell processor?
 
Top Bottom