News:

RIP GoReds

Main Menu

Official RBITool editor thread - 1.0 Update

Started by Turd, 05/21/09, 12:56:44 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Turd

This thread will be the official thread for the editor, so people can post feedback, bugs, etc as they are found.

Requires the .NET Framework 3.5. Download here if you don't have it:
http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=en

The idea behind it is the same as for TSBTool, easily work with ROM data using plain text, easily ported in from CSV files or Excel or whatever.

Some of you may not like the plain text format, but I've grown to love it after using TSBTool for so long.  Give it a shot, let me know what you think...

Version .01
- Added team editor GUI (double click the team line)
- Added ability to change team name, newspaper, cap/bat color, jersey/pants color
- Automatically applies Long Team Name hack

Version .05 (to use, delete old files and re-extract this zip file)
- Added long batting average and long era hacks and ability to toggle them off
- Mostly shored up the team editor GUI, allowing editing of error values as well
- Added some error validation when attempting to generate the rom
- Added ability to save new rom wherever you please instead of just created.nes
- still loads data from a csv file for now when the program loads. Reading from a ROM or CSV of your choice is planned for a future release

Beta Release
- Ability to read from an existing ROM
- Ability to load default NES data for the original game
- Full NES palette support for uniforms as well as full team editing support (newspaper, error, team name, etc)
- Ability to write a new ROM to any location
- Cycle through the players or teams using the GUI
- Pitch speeds are calculated in MPH on the fly along with the game value (e.g., 179 = 81-87 MPH or whatever)
- The main hacks (pitcher batting, long batting average, long era, etc are there (other minor ones will come later)
- Copyright strings are editable
- More error validation in case you entered some crappy data

1.0
- Fixed some colors and some various bugs and minor annoyances
- Now have the ability to automatically write the abbreviation tiles based on a 2-character abbreviation

** This editor can currently only read from the 96K ROM, and outputs the same.  

Contact me with questions, comments, feedback, etc. I'll be glad to show you how to use it or listen to your suggestions...

The remaining issues on my to-do list are:
Ability to change skin color
Misc hacks (sound, field color, pinch hitter boost, etc)

Gantry

Good start tecmoturd, keep the updates coming...

Turd

#2
Thanks Gantry, I'm just glad it's no longer at "downloaded 0 times." I just hoped it was due to the holiday weekend :) I've already made more updates, but I'll wait until a bit more stuff is finished before releasing another version.

defen

Are you using VS express?  I have copies of 2003 and 2005 if you want me to built it redistributable without needing the .net framework.  I'm curious about trying it out but installing that framework will fuck a bunch of stuff I need for my job.
I ain't no god damn son of a bitch
You better think about it baby

Turd

#4
AFAIK, there's no way to run a .NET app without the framework.  I've never heard of such a thing...care to elaborate?  What kind of stuff do you have on your computer that the .NET framework would screw up?  Hell, it comes pre-installed on Vista and Windows 7...

That being said, if you want the source code, I'd be glad to provide it to you or anyone else...as long as you note that this is my first attempt at winforms in C#.  My professional development has all been done on the web side of things, so there's a chance I might have done something hard way considering I don't know all the winforms tricks yet :)

Send me an email or hit me on AIM if you wanna chat...

defen

Quote from: tecmoturd on 05/31/09, 12:45:09 PM
AFAIK, there's no way to run a .NET app without the framework.  I've never heard of such a thing...care to elaborate?  What kind of stuff do you have on your computer that the .NET framework would screw up?  Hell, it comes pre-installed on Vista and Windows 7...

There is.  Anyway, I forgot that it comes installed on the newer stuff, so no worries.
I ain't no god damn son of a bitch
You better think about it baby

Turd

#6
Beta release download and info in the top thread...I know only a few of you downloaded it...for those that have, any feedback?

TempoGL

i've never heard of "NET Framework" and most guys on this site are not computer experts...so i think we are intimidated by this bizarre technology that is required.
Quote from: Nacho on 02/15/24, 12:09:31 PMWho Let the Dogs Out is an underrated masterpiece.

BDawk

I think it's .NET.  As in "dot net".  I don't know much about it but I think it's a programming language made by microsoft. 

Turd

#9
It's known as .NET or dotnet.  You're correct, it's written by Microsoft. It's their marquee programming framework...

This line from Wikipedia should tell you how common it's become:
"The .NET Framework is a key Microsoft offering and is intended to be used by most new applications created for the Windows platform."

I promise you it's as not as bizarre as you think.  It's usually installed with windows update these days, and Vista comes with it out of the box.  A lot of stuff is written in .NET these days, especially websites (although you don't need the framework on your computer for websites, it's only required on the server).

It's a very common framework that you might already have installed, and if not, it doesn't take long to install.  Doesn't require anyone to be an expert...I think the download is like 2.7 megs to set it up and it ends up being fairly small after it's installed.  

If you're still afraid of it, I understand. No big deal, just give it a download sometime if you ever do get it installed...

Gantry

tecmoturd is right, though .NET 3.5 sp1 isn't a 2.7 meg download that is just the installer program.  It's a big, fkn massive massive download (60 megs or so) though on workstations it should go smoothly.  They forced it out as a critical update for no reason on servers a couple months back and I swear the install failed half the time...

Turd

Youre right, the installer is 2.7 mb. But I have never had an issue installing 3.5. Perhaps I never downloaded the sp1 release. Even still, nowdays, a 60 meg download shouldn't be that much of an issue. Either way, I'd hate to have people scared to download it simply due to dotnet. 

Gantry

The whole install process is long (not just the download part) and failed half the time for me, but then again I did it mostly on servers.  I agree people shouldn't really be scared of it, especially since more and more programs will be requiring it anyway. 

broiler


TβG

Quote from: Nacho on 03/15/16, 10:17:08 AMWe've had babe drafts. We've had a sandwich draft. We can have our babes and eat sandwiches, too.

AlecTrevylan006

Count me in as download #3. Looks pretty cool

Turd

#16
Thank ya sir. If I can get the abbreviation icons working, I'll be really happy. Let me know if you run into issues so I can address them. Only thing I've found is that the color button in the team editor aren't exact for a few of them. I pulled them all from nw's editor, but some of his aren't matching up with a C# color. I've been fixing them as I see them, though.  

nightwulf

Quote from: tecmoturd on 06/16/09, 02:51:02 PM
I pulled them all from nw's editor, but his are off too. I've been fixing them as I see them, though. 





Exactly how did you accomplish that? Stare at the sun for an hour then guess at the closest color?

Use this palette ...

nesPalette= new Array ( "#747474", "#24188C", "#0000A8", "#44009C",
                        "#8C0074", "#A80010", "#A40000", "#7C0800",
                        "#402C00", "#004400", "#005000", "#003C14",
                        "#183C5C", "#000000", "#000000", "#000000",
                        "#BCBCBC", "#0070EC", "#2038EC", "#8000F0",
                        "#BC00BC", "#E40058", "#D82800", "#C84C0C",
                        "#887000", "#009400", "#00A800", "#009038",
                        "#008088", "#000000", "#000000", "#000000",
                        "#FCFCFC", "#3CBCFC", "#5C94FC", "#4088FC",
                        "#F478FC", "#FC74B4", "#FC7460", "#FC9838",
                        "#F0BC3C", "#80D010", "#4CDC48", "#58F898",
                        "#00E8D8", "#787878", "#000000", "#000000",
                        "#FCFCFC", "#A8E4FC", "#C4D4FC", "#D4C8FC",
                        "#FCC4FC", "#FCC4D8", "#FCBCB0", "#FCD8A8",
                        "#FCE4A0", "#E0FCA0", "#A8F0BC", "#B0FCCC",
                        "#9CFCF0", "#C4C4C4", "#000000", "#000000"
                       );


BDawk


nightwulf

#19
I really haven't had time to try and decipher icon data again. Here's a quick dump of information ...

Icon data is loaded from the ROM starting at 0x10AD0 ...

### Read team icon data from the ROM

  print PL "\n# BEGIN team icon data\n";
  print PL "\@icondata= ( [ ";
  $pdbl="["; $pdbr="]";
  $offset= 0x10AD0;
  for ($x=0; $x<10; $x++) {
    seek(ROM,$offset+$chr_offs+8,0);
    $d=0; read(ROM,$d,8); @l= unpack("C8", $d);
    print PL &parsedata(@l);
    print PL " " x 15;
    seek(ROM,$offset+$chr_offs+40,0);
    $d=0; read(ROM,$d,8); @l= unpack("C8", $d);
    print PL &parsedata(@l);
    print PL " " x 13 . "],\n";
    if ($x<9) {
      print PL " " x 13 . "[ ";
    }
    if ($x%2) {
      $offset+= 48;
    } else {
      $offset+= 16;
    }
  }
  print PL " " x 11 . ");\n";


So you get something that looks like this ...

# BEGIN team icon data
@icondata= ( [ [31, 57, 112, 112, 112, 57, 31, 0],
               [128, 128, 0, 30, 38, 166, 159, 0],
             ],
             [ [127, 113, 113, 127, 113, 113, 127, 0],
               [128, 192, 192, 156, 166, 166, 156, 0],
             ],
             [ [127, 113, 113, 113, 113, 113, 127, 0],
               [0, 128, 216, 190, 216, 152, 30, 0],
             ],
             [ [96, 113, 123, 127, 110, 100, 96, 0],
               [192, 192, 192, 222, 211, 211, 211, 0],
             ],
             [ [113, 113, 113, 127, 113, 113, 113, 0],
               [192, 192, 192, 220, 166, 166, 220, 0],
             ],
             [ [115, 115, 123, 107, 111, 103, 103, 0],
               [102, 102, 126, 126, 60, 24, 24, 0],
             ],
             [ [63, 113, 112, 63, 3, 99, 63, 0],
               [96, 96, 96, 96, 96, 98, 126, 0],
             ],
             [ [63, 113, 112, 63, 3, 99, 63, 0],
               [126, 96, 96, 124, 96, 96, 96, 0],
             ],
             [ [31, 59, 113, 113, 127, 113, 113, 0],
               [0, 128, 192, 190, 171, 171, 171, 0],
             ],
             [ [113, 121, 125, 119, 115, 113, 113, 0],
               [192, 192, 192, 222, 166, 166, 223, 0],
             ],
           );


... which has to be spit back into the ROM in four different places, changed a bit each time ...

### Write team icon data

  $offset= 0x10AD0;
  for ($x=0; $x<10; $x++) {
    for ($y=0; $y<2; $y++) {
      @curiconh= @{ $icondata[$x][$y] };
      undef @curiconl;
      for ($z=0; $z<8; $z++) {
        $curiconl[$z]= ($curiconh[$z] ^ 255);
      }
      seek(ROM,$offset+$chr_offs,0);
      print ROM pack("C8", @curiconl);
      print ROM pack("C8", @curiconh);
      $offset+= 32;
    }
    if ($x%2) {
      $offset-= 16;
    } else {
      $offset-= 48;
    }
  }

  $offset= 0x11810;
  for ($x=0; $x<10; $x++) {
    for ($y=0; $y<2; $y++) {
      seek(ROM,$offset+$chr_offs,0);
      print ROM pack("C8", (0,0,0,0,0,0,0,0) );
      print ROM pack("C8", @{ $icondata[$x][$y] });
      $offset+= 32;
    }
    if ($x==7) {
      $offset= 0x11820;
    }
  }

  $offset= 0x150B0;
  for ($x=0; $x<10; $x++) {
    for ($y=0; $y<2; $y++) {
      undef @curiconh;
      for ($z=0; $z<8; $z++) {
        $curiconh[$z]= ($icondata[$x][$y][$z] ^ 255);
      }
      seek(ROM,$offset+$chr_offs,0);
      print ROM pack("C8", (255,255,255,255,255,255,255,255) );
      print ROM pack("C8", @curiconh);
      $offset+= 32;
    }
    if ($x%2) {
      $offset-= 16;
    } else {
      $offset-= 48;
    }
  }

  $offset= 0x174D0;
  for ($x=0; $x<10; $x++) {
    for ($y=0; $y<2; $y++) {
      seek(ROM,$offset+$chr_offs,0);
      print ROM pack("C8", (0,0,0,0,0,0,0,0) );
      print ROM pack("C8", @{ $icondata[$x][$y] });
      $offset+= 32;
    }
    if ($x==5) {
      $offset= 0x17750;
    } elsif ($x%2) {
      $offset-= 16;
    } else {
      $offset-= 48;
    }
  }