Jump to content

Bad News Baseball - Team Replacement


Recommended Posts



Hi, all! My name is Keyz and I am addicted to "Bad News Baseball" (Hi, Keyz!!). I am also a huge fan of Tecmo Super Bowl and have enjoyed the mods for many wonderful hours. The work that has gone into that project has inspired me to modding and it is time for me to give something back. That I am doing in the form of a guide for team replacement for Bad News Baseball, which has been deemed by many to be not only the most enjoyable baseball video game on the NES, but in video gaming of all time! When it comes to changing stats, several members have come up with a comprehensive thread covering that located here (http://tecmobowl.org/forums/topic/51349-player-statsabilities-for-bad-news-baseball/), so I will not be rehashing that myself. This is purely for replacing team names, graphics, color, and player names. I will be posting (for lack of a better term) articles throughout the coming weeks as I am still working my way through my first complete mod. With that, here we go.
This is something I really wish I had known before I started. It pays to PLAN! Before you change a single bit of hex code or change a single pixel, you will want to plan your new participation and how they are organized. Here is a spreadsheet I came up with for just that purpose.



This is essentially the information you will want to have at the ready before you dig into the ROM. Here is a breakdown of what is going on here.

  • POSITION - This is the number of the team position on the select screen. Position 1 is San Francisco (S.F.). When you press down on the cross, the Position 2 team is Toronto, Position 3 is Detroit, and so on.
  • TEAM - This column lists the teams you are adding to the game.
  • REPLACE - These are the original teams you will be replacing as they match up with their Position in the team select screen.
  • 8 CHAR. NAME - This column give you a place to come up with an 8-character version of the team name that will represent the new teams in the game.
  • HELM. COLOR - This is the descriptive term for the players' helmet color as well as the color of the sleeves and shoes. You want this to be the darker of the two colors as it also represents the color of the "outlines".
  • HELM. CODE - This is the hex code of the helmet/sleeves/shoes color according to the standard NES color palette (see below).
  • UNI. COLOR - This is the descriptive term for the players' uniform color
  • UNI. CODE - This is the hex code of the uniform color.



When you review my spreadsheet, you may ask "Why do you have new Toronto in a different position than the original Toronto". Originally, this was because I noticed, when it came to coming up with the graphics for the "scoreboard", Tecmo though it was best to save bytes by recycling the first block over an addition team several times. Apparently, the game would have burst into flames had they done it any other way. Mmm-hmm. Anyway, there are 3 pairs of teams that share first-block scoreboard graphics: Toronto/Texas, Detroit/Boston, and Oakland/Chicago. THEN I also noticed that Detroit and Oakland share the second block graphic. C'mon, Tecmo! Quit trying to make things harder for us enthusiasts! Anyway, it turns out that it is a lots simpler to just alter a few graphics that aren't used and change some hex code than it is to try to plan the team placement around the graphic allocation. And about the Toronto question, I just didn't feel like reorganizing considering that changing team name text takes about 30 seconds anyway. Sorry, I tied sort of a long tail onto that kite.
One last note about planning: When it comes to team colors, don't feel inclined to match player uniforms with the real life ones. Real life clothing is rarely anything other than white, gray, or black. With helmets being the only real distinguishing color left, there is a good chance you will end up with 2 teams that have the same color scheme. With that in mind, be creative. Incorporate teams' tertiary colors when needed. No one will fault you for not creating true to form counterparts. Leave that for the next-gen consoles.


That about wraps it up for planning. My next article will be replacing team names, and after, planning and replacing team logos.

Edited by VertigoKeyz
Link to comment
Share on other sites

I figured I would whip one more out before the weekend...




This is going to be one of the easier steps with the right tools, so let's get them now. Before we do anything, we are going to have to get a copy of the original ROM. You can pick that up here (http://tecmobowl.org/applications/core/interface/file/attachment.php?id=11684). As for the tools, we will need an emulator with hex editing and a table creator. The program of choice for emulation in Windows is FCEUX (http://www.fceux.com/web/download.html) and TBLater makes a fine table creator (http://www.romhacking.net/utilities/56/). Once you get those, we can get to work.


Start up FCEUX and select "File >> Open ROM" or press Ctrl + O. Open the "Bad News Baseball (USA).nes" file you just downloaded. The game will start right up. Hit Enter to go to the title screen, and hit Enter again to start a one player game. We won't need to go beyond this point so select "NES >> Emulation Speed >> Pause" or hit the Pause key on your keyboard to stop the game. Click "Debug >> PPU Viewer". This will open a new window with graphics in use on the current screen. 


At this point, we will make a table to find text easily in the game's hex code. Open TBLater and move the window so you can see both the PPU viewer and TBLater. In the PPU viewer, you will notice a set of alphanumerics in the right region. Hover over the capital "A" and below the graphics, you will see "Tile: $01". In the TBLater grid, place your cursor in the row 0/column 1 block. Since the alphabet is complete and in order for this particular screen, it is easy to populate the table. Click "Automation >> Auto ALPHABET (U)". The (U) designation is important for correct capitalization. Uppercase and Lowercase are definitely not the same when it comes to modding! Once the caps are filled in, the cursor will be in cell 1B. Go ahead and click "Automation >> Auto alphabet (L)" to add the lowercase letters since they are there too. Lastly, with the cursor in cell 35, hit the period (.) key. Click "File >> Save" (or ctrl + S) and save the table as "teamselect.tbl". DO add the ".tbl" extension, as for some reason, TBLater chose not to do that automatically. You can close TBLater now.


Go back to FCEUX now and click "Debug >> Hex Editor". This will open up the powerhouse of code under the hood of every NES game. In the hex editor window, click "View >> ROM File". This will allow us to edit the actual hard coding of the game. Next, click "File >> Load *.TBL File" and select the "teamselect.tbl" file we just made. You will notice a change to the code on the far right of the editor. This is where we will locate our team names. Click "Edit >> Find" to open the search window. In the "Type" area, select "Text". Then type in any of the team names in the "Find What" box. I will use CHICAGO. Be sure to type in all caps, then click "Find Next". Notice the window jumps down to line 004050 when the first occurrence of "Chicago" is. You can see that all the team names are grouped together (highlighted below). All you need to do now is change the names. 




This is where your planner comes in handy. The name block starts with "S.F." and ends with "TORONTO". I realize that this is in reverse order than my spreadsheet. I was on the mind that clicking down on the cross meant the next team, not up. Sorry.


An important thing to remember here before you start is that each team name uses exactly 8 characters including periods and spaces. With that in mind, click on the "S" in the "S.F." above the first Chicago entry. With your caps lock on (for consistency) type in the 8 character name of your corresponding replacement team. In my example, that is "UNIVERS.". Your cursor should be at the "L" in L.A. Continue typing with your next team. Mine is "TORONTO". Since Toronto only has seven letter, we need to include a space at the end. Since there are 4 spaces at the end of L.A., this is already taken care of. However, in the 3rd entry, I am changing "ATLANTA" to "BROOKE". When I finish typing I have "BROOKEA". This is easy to fix. There are 2 highlights in the hex editor: the one on the right we've been using, and the one to the left which highlights the corresponding hex code. In this particular case, blank spaces are represented by the hex code "00". All we need to do to add the blank space is to click on the hex highlight and type "00". Notice on the right that the "A" turned to a ".". The "." in this case represents a space. Periods are also represented by "." on the right which can be a bit confusing. When in doubt, look at the hex code. You will see spaces have the code "00", while periods are code "3A" (though in this section, they can also be "35" as we set up with TBLater). When you finish editing your team names, you will notice there is another set of original team names. All you need to do is repeat the process. You probably saw there are 2 other "team" names: "ULTRA" and "SUPER". These are simply the All-Star team names. If you like playing the All-Star mode, you can change these if you wish, but it isn't necessary if you play standard teams.


Once you have changed both sets of team names, click "File >> Save ROM As". Give your ROM a new name so as not to save over the original, in case you need to go back to it at some point. Once saved, you can close FCEUX and reopen it, load your custom ROM, and see the changes.


That does it for this part. Next, we will be hitting the team logo graphics. 

Link to comment
Share on other sites



Before we get to editing logo graphics, this will be a quick and simple step that will also be a primer for editing colors in ROMs. We will use our planner spreadsheet from earlier.




Once again, my inclination to push down for the next team instead of up will bite me in the ass, but just humor me. Open your custom ROM in FCEUX and pause the game as before. Open the Hex Editor, view the ROM file (not NES memory! I sometimes forget to switch that myself), and scroll down to line "01DA70". This is where the block of code for on-field coloration begins.




Note the red boxes above. These are broken up into 3 codes which define the 3 colors making up players in the on-field screens where the main gameplay takes place. To change the team colors to match your planner, start by clicking on the first "0F". In my example, I will be changing this to "06" to make the helmet, sleeves, and shoes of the University players dark red. Press the right arrow to skip over the "36" and then, over the "30", type the Uni. Code number, which for me is 28 (Vegas Gold - I decided against 18/Classic Gold). Congratulations! You have just changed the colors for your first team in all the gameplay screens (though not the cut scenes. We'll get to that shortly). In the next box, we will change the colors for Position 12 (due to my reverse team selection theory). In this case, I will change the "12" to "06" (dark red) and the "30" to "10" (light gray). In the third box, I will do the same for Brooke. The fourth will be Steubenville, and so on through the last box for Barnesville.


As you notice, we skipped over the 36 in each case. That is because "36" is the code for the players' skin, which by default is flesh tone (or as I like to call it, Band-Aid color) for all teams. If you felt so inclined, you could easily change the color for the skin of each team to something darker, or even something science fiction like. But keep in mind that changing that number changes the skin for the entire team. You can't change it for individual players.


That's all there is to changing the player uniforms for the game play screens. A little later on we will cover the coloring of the cut scene colors. It is very similar to what we just did.

Edited by VertigoKeyz
Link to comment
Share on other sites



Here is where we are going to get our hands dirty, figuratively speaking. There are plenty of different programs to aid in turning your logos into 32 x 32 pixel representations, and there is the old fashioned pencil and paper method. But no matter which method you use, there are a couple rules when it comes to making those logos proper for the game. 

  • All logos must be 32 x 32 pixels (naturally).
  • Logos can be made up of a maximum of 3 colors and 1 transparent layer.

Since failing to plan is a plan for failure, figure out how you are going to create the logo within these parameters, then we will get to editing the ROM.

I use CorelDraw as my main graphics software, but my method would translate just as well to the more popular Adobe software. I start out by creating a 32 x 32 grid with black outline and no fill. I then take a downloaded graphic of the official logo and lay it behind the grid. I keep a copy of the NES palette on the page as well to be able to sample and fill with the paint bucket tool. Block by block, I fill in the most representative color with a selection from the palette. Keep in mind we only have 3 colors to work with so some sacrifices (no pun intended) may have to be made. For this particular game, I don't incorporate the transparent layer at all, since the actual background on the team selection screens are blue and the main foreground is black. It just looks better to fill the whole empty space with white or black or some color consistent with the regular logo if need be.



To match the programmers' concept, I also choose a color to wrap around as a border. Lastly, I overlay a 4 x 4 grid. As the individual logos consist of sixteen 8 x 8 blocks, this will make it easier when it comes to working with the graphics in Tile Layer Pro. Speaking of it is time to do just that (once you have all 12 new logos planned). Download the program here (http://www.romhacking.net/utilities/108/) and unzip it to your computer, then run the program. Click "File >> Open" (or ctrl + O) and select your latest custom ROM. The main graphic library will initially show 16 rows of images. Go ahead and drag the lower border down so you can see more images. Click the down arrow until you are about a third of the way down and you will see an area with an upper and lower case alphabet like this. 



You will know you are in the right spot by the "1", "Play", "II", "ER", etc. below the alphabet. In between those two regions are the graphics for the logos. They are set up as above. We will start with changing the S.F. logo to the University logo I have prepared. While you are free to redesign the images from within the library, it is easier to reconstruct the initial logo and then edit. Before we do that, we will edit the colors in the Palette Editor to match those of our logo. This doesn't actually change the in-game colors; it is simply to help us visually during editing. 

Click the title bar of the Tile Arranger. The Palette Editor will go from 4 colors to a grid of 16. We only need to edit the first 4 colors on the top row. Actually we will not change the very first one since that is the transparency color. It doesn't matter what color you replace with what. Click on the Green color to change it. For my example we will be changing it to a deep red. The colors don't need to be perfect; we just want them to be close enough to make it easier on our eyes. A deep red appears when the sliders are set at R140:G0:B0. I will also need a gold in the next spot (R255:G205:B0 will do nicely) and white (All set at 255). You will notice nothing has changed on the graphics palette. That's okay. We will see the change next.


The "Tile Arranger" is our workspace for reconstructing logos in TLP. There is a trick to each logo when reconstruction. The images from left to right are arranged like this.



So when you drag them over you want to place the first one, then the second one goes below it, then the third one is next to the first, the fourth is below that, and so on. After the 8th block, you place the 9th below the second, the 10th below that, and so on.


Once a logo is reconstructed, we can easily edit the logos. We will start with the S.F. logo. Once we reconstruct it, we can wipe each tile clean and work fresh. I will be using white to overwrite the tiles. Click the upper left hand of the S.F. logo and it will appear in the Tile Editor window. I will choose the white color in the Palette Editor, then just click and drag all over the Tile Editor window. Now I can refer to the graphic I created earlier and recreate it in the ROM. The Tile Editor works just like a primitive Microsoft Paint program. When you are finished with the first block, click on the next in the Tile Arranger and continue with your guide. 



When you have finished recreating your first graphic, you will probably want to see how it came out. Click "File >> Save As" and save the ROM as a new revision. It is best to not overwrite your original file in case something unexpected comes from your effort.


Run the new ROM and start a game. You will see that the S.F. logo is replaced by your new one. The colors probably won't be correct, but that's okay. We will get to that soon. For now, open the new ROM in TLP again and continue editing the rest of your logos. When you complete all of them, double check them by running the ROM to make sure they all look good. Next up, we will give them the correct color.

Link to comment
Share on other sites



Now that we have the logos designed and changed, we need to do something about those colors. Since we have already used the hex editor to change the player colors during gameplay, we have a good idea of how things work. It is time, however, to come up with another planner sheet. In my time writing this, my planner sheets have evolved and gotten a little more colorful. It isn't necessary that you do the same, but it is an option for you to choose. 


The easiest way to do this is to open your latest ROM and start a game, which will take us to the team selection screen. One team at a time, go through and compare the colors of the original logo (columns D, E, and F of the spreadsheet) with the corresponding colors of your new logos. This will help you to determine what new colors goes in which columns (J, K, and L in my sample). Make these changes on your spreadsheet first, then we can move on to changing the hex code all at once.


After your spreadsheet is complete, open the Hex Editor, View the ROM file, and scroll down to row "01DAC0". There are two sets of codes you will need to change: One for the team select and one for the cut scene screens. Oddly, the programs didn't combine this into one access of the graphics, but whatever. This first set of changes is just like before, grouped in the red boxes below. 


The order is per usual (Position 1 is first, 12 is second, 11 is third...I know, I know). Once you have those changed, we will need to edit the colors for the cut scene logos. This one is a little trickier because they are shuffled around a bit, but if you understand the order, it isn't too bad.


4 of the code blocks are in lines "0089E0" through "008A00". In order, these edit the colors of Positions 1, 8, 4, and 3. The second collection is just below the first in lines "008A90" through "008AC0". The order of these are 2, 12, 11, 10, 9, 7, 6, and 5. Once you complete these changes, save your ROM as a new version and give it a go. You will notice that all your team logos are correct in color and design on all screens!


We are headed toward third with our editing. All that is left for us to do is edit the scoreboard team designations, change the title screen, and up next, edit the player colors in the cut scene screens.

Link to comment
Share on other sites


We have already changed the uniform colors during game play, but you may have noticed that the players look the same when teams switch sides. We are going to take care of that right now. 

For the in-game colors, we only had to change one 3-hex block for each team. This step is a little more complex, though not much. I smell an opportunity for another planner...



Ooh! Look at all the pretty colors! Sorry. With this planner, there are a few things to take note of. The first, naturally, is that there are 3 lines for each team. That is because we need to change three blocks of 3 hex codes for each team. It has to do with the graphics being large and actually being made up of 4 colors. Another thing to note is that I have capitalized some of the entries in the color column and made them red. These represent codes that we will not change. All the BLACKs in the first column are for the lines in the graphics, and the FLESHes in the second and third columns are (obviously) for the flesh regions. Remember, unless you want your team to be green men from Mars, you probably want to leave this alone.

Once you know the colors not to change, the others are quite easy. The "Color 2" row is the color of the helmets, socks, and sleeves of the uniform and the "Color 3" row is for the main uniform. It takes a little time to come up with these planners, but it is time well spent as you will see in the next part.



Wow! What a mess! Actually it really isn't. Aside from the usual bass-ackward order from the rest of this guide, everything is ordered just like in our planner. The first 6 colored blocks match up with the first row of the "first" six teams. As you can see the first hex is "0F" (black), then the helmet/socks/sleeve color, then the uniform color. The next 6 blocks match up with the "last" six teams. The skipped block, I believe, is for the first All-Star team and the second is for the other. Following that we have the same in order, but this time each block has a black "0F", then a flesh "36", and lastly a uniform color. Can you guess what the last set of blocks are code for? That right! Black "0F", helmet/socks/sleeve color, and a flesh "36". I told you that planner would help keep things simple. Well, as simple as hex modification can be anyhow.

That was probably the most time consuming step of the whole guide, aside from editing the logos with TLP that is. But we are on the home stretch. Our last step is to tweak those scoreboard initials. However, since this guide wants to be as thorough as possible, we will be adding a few bonus steps: Changing player names (if you want to match up with the real life teams) and editing the title screen (if you want to let people know right away that they are playing a modified version of the game).

Link to comment
Share on other sites


Aside from a few optional changes, this is the last step in customizing Bad News Baseball to our own preferences. As I mentioned much earlier, when it comes to the scoreboard, there are a few graphics that are shared between teams. We are going to take care of that first by changing a few lines of hex code. In the Hex Editor of FCEUX, go to the lines below...



...and change the red boxes as such...



What this will do is allow us to use a few empty graphics to replace the shared graphics previous piggybacked by Oakland, Detroit, and Toronto.

Our next task is to create our graphics to match our new teams. We will do this similar to creating the logos, but with a lot less work. With CorelDraw, Adobe, or just graph paper, come up with an 8 x 16 block grid. We will red out the first 3 columns so we are sure not to use them, like all the ones in the original game. Next, using the alphanumerics in the game as a guide, recreate your teams logos. Be sure to keep in mind what teams correspond with yours. Here is an example using another project I am working on to recreate the independent Frontier League (Go, Wild Things!!).



Open your ROM in Tile Layer Pro again, and scroll down a little bit until you see the first text grouping. Before we change the graphics, we will duplicate the shared graphics by simply dragging and dropping to the empty blocks like this.



Now, drag the different 2 block sets to the Tile Arranger and edit them using the Tile Editor. When you arrange them, keep in mind that the graphics you duplicated correspond with Oakland left, Detroit left, Detroit right, and Toronto left.

Since there are 4 sets of scoreboard graphics, we will need to duplicate both the fill-in graphics as below (use the same order as the first set) as well as the changed graphics you made a few more times. Expanding the window will allow you to drag and drop the same graphics to these other spots.



One last step: you will need to change the green to blue in the second and third set to match the rest of the groupings. Naturally, you can change the second set and just drag and drop to the third set (wish I had thought of that before. Oh, well).

You have just completed your modification of Bad News Baseball!! I will be posting a couple of follow up articles, but aside from that, enjoy your new game!!

Link to comment
Share on other sites


Now that we have tackled the game graphically, it is time to head to the front office. When it comes to changing players, you are limited only by your willingness to dig deep into the roster. Our past efforts have set us up with the skills we need already so let's see how we can change the players' names.

This is going to be very similar to the method we used to change team names in Step 2. Open your ROM with FCEUX, open the Hex Editor, and view the ROM file. Load the "teamselect.tbl" file again. You kept that, right? If not, go back to Step 2 and recreate it with TBLater. Now scroll down to line 004110. On the right, you will see "STEVE" this is the first player of the first team, S.F. From here, all of the players are in the order they appear in the game. "STEVE" down to "JERRY" are the 14 S.F. fielders, then "MAC" through "TRAVIS" are the 6 S.F. pitchers. 



Following that, you have "SHAYNE" through "CEASAR" (the 14 L.A. fielders), then "CARLOS" through "MATT" (the 6 L.A. pitchers), and so on. After all of the boys names, you have the girls names in the same order (Yes, let's not forgot that BNB has a girls mode. Even Trump can't take away a woman's right to play baseball)!

When it comes to editing the roster, you alone can determine the depth of your changes. In its simplest form, you can change the names and call it a day (Note: just like the team names are exactly 8 characters, the players' names are exactly 6). If you want to go a little deeper, you can plan out the players based on the positions they play in real life. You can also arrange them based on batting average, home runs, ERA, and on, and on! If you want to go full BNB psycho on it, you can edit the actual skills in the hex editor. I won't go into that here but if that is your thing, check out this guide (http://tecmobowl.org/forums/topic/51349-player-statsabilities-for-bad-news-baseball/).

Since roster management is such a massive effort, I am providing a spreadsheet with all of the players and stats. Printing it out and using it to plan your team should make it significantly easier than bouncing around from screen to screen looking for stats in the game. I put a lot of work into that so, as Kevin Costner said in "Bull Durham", when you speak of me, speak well.


Link to comment
Share on other sites

  • 2 months later...
  • 3 weeks later...
  • 1 year later...
  • 1 year later...

I just woke up from a coma after 10 years and I see there has been work done to the greatest baseball game ever made. Thanks guys for your hard work on this. I can't find the game anywhere. Can someone link me to it? Is there a tool available for easy roster name changes and stuff like that? I'd like to make a team with me and all of my friends who used to play this game. 

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.

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...