Jump to content

The Final Frontier in Rom Editing


Gaffney

Recommended Posts

So rosters, schedules, helmets, endzones, simulation, playbooks...all that stuff has been hit. It seems like some people out there must have a pretty good feel for assembly language for editors, such as TSBM2000 and the Endzone editor, to have been created. As I mentioned in my last post I saw the NCAA2001 rom by JG Games and graphically it has changed pretty much everything. Where do we go from here?

I think it would be incredible if someone could figure out how to edit plays. Could you imagine Tecmo with option runs, HB passes, new formations... even if we could just get rid of the crappy plays (like the 2TE set ones) and replace them with more options for the current plays it would be a great improvement. Does anyone know how to do this? COULD anyone figure this out...and from there could anyone construct an editor for it?

The other thing which pops into my head would be a Tile Editor program which greatly simplified editing things such as the mid-field logo and the full-size helmets.

Anyone have any ideas or suggestions? I was in touch with some guy a while back who was working with someone else to make a comprehensive editor for TSB. They both had extensive experience with assembly language, but somewhere along the line they had a falling out and the project never got completed. In the plans were potentially ways to alter the computer difficulty, eliminate fumbles, possibly even add teams to TSB3 (not TSB, though, unfortunately). Does anyone know if anything like this might be in the works anywhere?

Link to comment
Share on other sites

That would be awesome if something like this was possible. I don't have the time or the patience to deal with nesticle and try to alter the graphics. That project that you were refering to sounds like a really good idea and that would be something that i am sure alot of people would definetly be interested in.

Link to comment
Share on other sites

Well, Tecmo seems to code stuff fairly simply. Let's say there are 12 formations, there might just be a character 0-B to decide what it is. There may also be something equally simple telling each offensive player what to do. This means HB passes may be out of the question, but adding more Offset I plays with different routes and blocking patterns may not be nearly as difficult. After that it would merely be a matter of editing the way the plays appear graphically...and possibly coding how the computer defends them, although I'm pretty sure its a general simplistic system the CPU uses for all plays.

This of course all lies on the assumption that the different plays are set up on some kind of variable system and not each hard-coded individually. (I think I'm making these terms up, by the way).

Link to comment
Share on other sites

The stuff that we've been editing has all been static variables and hard-coded strings. Routes might be dynamic variables (because they can change based on other variables like picked plays and ball movement). Also, giving the RBs the ability to throw might be out of the question because the data structure for RBs might be smaller in size that QBs so it might not be as simple as just flipping a bit or two.

I am open to the possibility of having completely customizable playbooks (that is moving pass 4 plays to the pass 2 slot, maybe even moving run plays to the pass slots), however I think in order to find that out you'd have to switch groups of hex values around and that would take days or weeks of experimentation.

Link to comment
Share on other sites

Now that's an interesting idea. If say pass slot four says "Pass #25"...."Pass#32" and you could change it to say "Pass #25", "Pass #1", etc... you could replace the flea-flickers and rollouts with more usable pass plays.

You could say put that Offset I Flare pass in pass slot 4 making an all Pro T/Offset playbook a possibility. That's the thing. You could make a lot more playbooks with Onesetback and Offset formations if their passes/runs were moved around.

Does anyone know how to figure out if this can be done. I just emailed the guy I spoke of before, he said he'd be willing to build an editor for TSB, but we need to give him the HEX values for everything that we would want change (most of the work in itself, but a nice offer nonetheless). If someone wants to take the lead on giving him the info I'll get you in touch with him.

Link to comment
Share on other sites

After reading all this I have gone into a dream world.

I'm suddenly picturing Steve Grogan running a bootleg, then tossing the ball back to Mosi Tatupu with a perfectly placed Mark Cook waiting to pick up a block.

I see Andre Reed in the backfield taking the snap for Jim Kelly and hitting Don Beebe on a pump n' go.

This needs to become a reality...

Link to comment
Share on other sites

Yeah, if it's just a matter of changing pointers to point to different plays then really there's no excuse for not doing this. Just think of the possibilities:

pb1.jpgpb2.jpg

pb3.jpgpb4.jpg

And if we could move pass plays to runs slots as well, just imagine the damage you could inflict with, say, the Oilers using this:

pb5.jpg

Like I said this guy I know will make an editor we just need someone willing to figure out where this info is. I would if I had an idea how.

Link to comment
Share on other sites

Like i said i would help out if i knew more about the hex editing and stuff like that, but the visual of the 6 pass plays and 2 run plays, and then the different run and pass plays in the different slots is something that i always had pictured would be an awesome addition to the game. Hopefully someone can provide everything needed so this can become a reality.

Link to comment
Share on other sites

Guys you really need to get someone who knows 6502 assembler code (or pick it up yourself) and just parse up the entire game into chunks for each part of the code and data. Half of your work is already done since people know where a huge chunk of the data is. You start with the beginning and go step by painful step. Once you have that you can do anything easily. But trying to do it without a decent knowledge of what is where and why is stupid and time consuming when you are talking about intricacies of the game, unless you have an easily corrupted section of the ROM (like player data) where you can make a change and know what exactly it did. I don't think it would help much to use a decompiler since it's all hand-written assembly, but you need something to tell you what all the instructions are if that's possible for this format (I don't know how the 6502 executables and the data and processor junk in the NES looks).

Link to comment
Share on other sites

If somebody figures this out ... my life will be complete. :roll: You guys have 110% of my moral support, so GO FOR IT! :) I can't be of much help though, I'm still in the process of understanding hex & all.

Hate to keep bringing this up, but has anybody have the slightest idea on how you could change the Offensive Roster screen to have different formations, it's annoying creating a '03 rom and having the falcons in a 4-wr set. Even if somebody could figure out a way to make every team in the game into a pro set, I rather have that cause their are only 1-2 teams that don't use the Pro as their base, and they use it at least 40% of the time anyways.

Link to comment
Share on other sites

Guys you really need to get someone who knows 6502 assembler code (or pick it up yourself) and just parse up the entire game into chunks for each part of the code and data. Half of your work is already done since people know where a huge chunk of the data is. You start with the beginning and go step by painful step. Once you have that you can do anything easily. But trying to do it without a decent knowledge of what is where and why is stupid and time consuming when you are talking about intricacies of the game, unless you have an easily corrupted section of the ROM (like player data) where you can make a change and know what exactly it did. I don't think it would help much to use a decompiler since it's all hand-written assembly, but you need something to tell you what all the instructions are if that's possible for this format (I don't know how the 6502 executables and the data and processor junk in the NES looks).

I nominate someone else.

Link to comment
Share on other sites

I just downloaded a disassembler - is that the same thing as a decompiler. Man it's all this Load State and Save State stuff, who can figure all that out? That must take forever to do. I guess we could start with what we know. Can anybody work backwards with the Sim Editor and TSBM to figure out where the information is stored that we know already?

Like I said if we can just identify where everything is, this guy is willing to make the editor for us. There gotta be some kind of Comp Sci major within this message board...right? This could be somebody's thesis project or something.

Link to comment
Share on other sites

I have a bachelor's degree in computer science from WPI, but there's still the problem of translating the machine language (the rom) to some sort of readable language (like assembly). I know absolutely nothing about NES machine code. And even then I wouldn't know what to do with it. Then I have to look at how the emulator interacts with it too. That's pretty tough as well. It would be great to actually get a hold of the source code but that isn't happening soon. Does anyone know how long the license lasts for nintendo games? Perhaps we can petition tecmo to release the source code once that license expires?

Link to comment
Share on other sites

Would he be willing to make a Tecmo Bowl editor? The save states are basically the representation of the ram chip in every game since they all need to be able to write some data. Quite a bit is known about the save states like where player condition is and stats are stored, etc....

I can put up links about the 6502 asembly language stuff if others are interested. I don't know if the disassembler spits out source code or not though. My guess is that it doesn't.

I just downloaded a disassembler - is that the same thing as a decompiler. Man it's all this Load State and Save State stuff, who can figure all that out? That must take forever to do. I guess we could start with what we know. Can anybody work backwards with the Sim Editor and TSBM to figure out where the information is stored that we know already?

Like I said if we can just identify where everything is, this guy is willing to make the editor for us. There gotta be some kind of Comp Sci major within this message board...right? This could be somebody's thesis project or something.

Link to comment
Share on other sites

Well the disassembler makes something that looks like this:

32790 01:8013 CPX $FFFC

I don't know what an API is, but it's something that looks like a language like BASIC or PASCAL or C or something readable I'm all for that.

I remember there is one FAQ that has info on a lot of the save states.

Can anybody get the source code for TSBM or TSBM2000? We could probably work backwards to get the pointers from that.

I've been trying to assemble a team of people to get information. I just emailed the guy who was able to edit the large helmets in TSB by (I believe) adding tiles - which means he must know something about the code. If we could get an editor which filled each helmet with usable and editable tiles and allowed you to edit it and the pallette directly that would be good.

Rod, I think if you can post that information that would be good. Then everybody could begin posting the locations they know of and we could figure out what (as a whole) we know and what is left out there. Anyone who has a better idea or a better understanding of how this works please throw your input in....my advice may not be the best way to go about this.

Link to comment
Share on other sites

I don't know what an API is,

It stands for Application Programming Interface or something like that. It's essentially some access functions to edit the rom automatically. For instance if you're a C programmer you could call edit_player() from the api and stuff the player with the attributes you want without ever knowing assembly. That way with a little higher level programming knowledge you could write your own TBS manager, sim editor, or even automate rom updates through a league. For instance two people could submit a trade and the website would automatically update the rom and send email to the rest of the league members.

Link to comment
Share on other sites

The hexidecimal numbers are just base 16 instead of base 10 like decimal numbers. Thus, you go from 0-F instead of 0-9.

8=8

9=9

A=10

B=11

C=12

D=13

E=14

F=15

10=16

11=17....etc

......

FF=255

Basically, this is a way to squeeze larger numbers into less space. You can represent up to 255 using just 2 digits.

I tried to figure out hex once, and it nearly drove me insane. I have some books that explain it but it means absolutely nothing to a computer illiterate person like me

scott

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...