Jump to content

Modding Bases Loaded for Dummies


VertigoKeyz

Recommended Posts

mbl_for_dummies.png

 

A while back I made a "For Dummies" guide on modding Bad News Baseball for the NES. While I enjoyed that game very much, I always had a soft spot for the original Bases Loaded. It was my second baseball game ever; RealSports Baseball on Atari 2600 was actually my first. I really appreciate the simplicity and pick-up-and-play-ability of it. However, I had never explored modding it until now. And I want to share that with you. So come along and make Bases Loaded your own.

Link to comment
Share on other sites

STEP 1 - FAILURE TO PLAN IS A PLAN FOR FAILURE

 

As I did with Bad News Baseball, my first objective is to come up with a plan of attack. This will include everything written out to make the individual steps go more smoothly. We also want to make sure we have all the software needed, so let's actually do that first. The tools we will need are:

If you are new to ROM editing, three new programs can seem pretty overwhelming, but don't worry. We will go slowly.

 

Once we have all the software, we can continue coming up with a written plan. I use Excel to design my approach, but you can use Google Docs for free, or even write things out by hand.

 

Planner2.png

 

Whoa! Where are these numbers and colors coming from. Don't panic! Those are simply colors and codes from the standard NES palatte. You can easily use this guide to choose the best colors for your teams and type in the corresponding ## code. You can also color the cell in to match if you want to be fancy like me. Fancy being another word for ADD.

 

nes_color_palette_1024x576.jpg

 

In addition to the basic planner now is a good time to plan out your teams' rosters. To make this as painless as possible, I have made roster sheets for each team in the game, complete with stats and positions so you can match up players with abilities and what position they play. There is also a blank column on the right to fill in your players' names. One thing to keep in mind is that the game limits player and team names to 6 characters each. So if you are adding Maximillian Winchesterton to the Saskatchewan Roughriders, you should prepare to get kind of creative with abbreviation. ;)

 

Boston Roster

N.Y. Roster

Philly Roster

D.C. Roster

Jersey Roster

Miami Roster

Kansas Roster

Utah Roster

Hawaii Roster

Omaha Roster

Texas Roster

L.A. Roster

 

While it is possible to change the player abilities in the hex code, it is way more complicated. Since this guide is for beginners, we want to take a simpler approach. We will be modifying the players based on race and facial hair, but that is later on. For now, let's focus on the skills and positions. 

 

Once you have everything planned out, it is time to start working with the code.

Edited by VertigoKeyz
Link to comment
Share on other sites

STEP 2 - TEAMING UP

 

When it comes to updating the team names with our new ones, there are 4 sets of changes we will be making. Let's start off with the team names themselves. Start by opening FCEUX. Select "File >> Open ROM" or press Ctrl + O. Open the " Bases Loaded (U) (PRG2) [!].nes" file you downloaded. The game will start right up. We won't need to delve into the game so select "NES >> Emulation Speed >> Pause" or hit the Pause key on your keyboard to stop the game. Normally I would take you through the steps of digging into the graphics to create a table for working with the hex code, but I am going to skip that in this tutorial and just show you the tables you need to make. If you want to see the more in depth process, check out my Bad News Baseball tutorial at (http://tecmobowl.org/forums/topic/69310-bad-news-baseball-team-replacement/).

 

Open TBLater and fill in the cells to match this image.

 

team_select_table.png

 

Jaleco didn't seemed concerned with keeping the alphabet in order or together for that matter. Regardless, once you have the table filled in, 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 BOSTON. Be sure to type in all caps, then click "Find Next". Notice the window jumps down to line 018E40 when the first occurrence of "Boston" is. You can see that all the team names are grouped together. All you need to do now is change the names.

 

TEAMS.png

 

This is where your planner comes in handy. The name block starts with "BOSTON" and ends with "L.A.". An important thing to remember here before you start is that each team name uses exactly 6 characters including periods and spaces. With that in mind, click on the "B" in "BOSTON". With your caps lock on, type in the 6 character name of your corresponding replacement team. In my example, that is "CITY". In this case, I will need to add 2 spaces. For this, I need to click on the "89" that is highlighted on the far left. I will then type the hex code "02" twice for two spaces (02 being the code for [space] in this particular game). That puts my cursor (on the right) at the N in "N.Y.". I continue typing with my next team, "EVANSV". With 6 letters, it fills the block, as does "FLOREN", "GATEWY", and so on up to "LAKE E", when I will use another 02 for the space. If you happen to have a team name like "L.A." that needs periods in it, you do the same as you did with the space, but using the hex code "2C" instead of "02". After you have overwritten "L.A..." (the 2 extra periods representing spaces; a bit confusing but look at the hex code when in doubt), we are ready to move on to the 1-character abbreviations.

 

There are two sets of these, which for some reason are in different orders. Freakin' Jaleco! Anyway, our first set of initials is just above the team names in line 018E10. These are in the same order as our team names, so all you need to do it highlight the B in "BNPDJMKUHOTL" and type the first letters of each team name. In my case, this would be "CEFGIJLNRSTW". There. That was easy.

 

TEAM_INI2.png

 

The next one will almost be as quick, but in this case the order is more like that of the team select screen. Scroll down to line 0191D0. On the right, you will see "ELECT..LP.K.B.N.". The "P" stands for Philly, the "K" for Kansas, and so on. To help transpose the characters, consider the "BNPD..." to be numbered 1-2-3-4.... Then rearrange the characters to this pattern: 3-7-1-2-6-4..5-9-8-12-11-10. Keep in mind there are a few extra spaces in between the D and the J originally. In my case, I end up with "F.L.C.E.J.G...I.R.N.W.T.S".

 

TEAM_INI.png

 

For the fourth and final part, we are going to have to do some graphic editing as well as hex. Freakin' Jaleco.

 

Before we can open the ROM in our next program, we need to save our edited ROM file. In the hex editor, 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. Here is a screenshot of the graphics we will be working with.

 

gameplay_graphics.png

 

In the right block, you will see some Japanese characters and some English characters. The English ones represent our team initials as well as the BSO (Balls-Strikes-Out) characters. Look at the available characters, determine which ones you can recycle, and make a note of them. In my case I am able to reuse "J" (Joliet), "L" (Lake Erie), "N" (Normal), "S" (Schaumburg), and "T" (Traverse City). The other 7 I am going to have to recreate. Fortunately, there are plenty of unused letters. I can't touch the B or the O (that would mess up the Balls and Outs characters), but I can use the U, P, M, D, K, H, and any one of the Japanese letters. I just need to make sure to keep the hex values for placement correct. Creating a small table is going to be the best strategy here.

 

graphic_replacement.png

 

On the left I have the original team initials, in the middle I have my team letters (in the corresponding "BNPDJMKUHOTL" order - You'll see why shortly), and on the right I will place the hex codes, using the same hex grid method we did in making the table. Each code represents a row (from 0-F) with the first character and a column (0-F) with the second. The blue codes are the ones I am reusing, the reds are the replacements, and the green one is the Japanese replacement. For the replacement, I chose to replace the available characters in order. As you can see, I am replacing the first available one "U" with my first needed one "C". Then the available one "P" with my needed "E", and so on. You are free to do the replacement in any way you choose, but keeping in mind what you can change and what you can't. And most important, make sure the hex numbers are accurate (this will make the last step much easier).

 

It is time to open up Tile Layer Pro. Run the program and click "File >> Open" (or ctrl + O) and select your latest custom ROM. When you first open the file, you will see a grid with what looks like a whole bunch of scrambled pixels. These are actually the first graphics in the ROM file. The ones we are going to play with are lower down. When you get about 80% down, you will see the same group of letters "SULP..." that appear in the above capture. Actually there are 3 sets of them if you scroll lower, but we will get to that in a moment. The first change I want to make is changing the "U" to a "C" for (Windy) City. Changing graphics in TLP is going to be a lot like using a primitive Windows Paint. Start by clicking on the graphic you want to change. It will show up in the "Tile Editor" window. From here we will use this graphic...

 

3d_letters.png

 

...as a guide to make our new letters match the existing ones. Simply tap the color in the palette editor and click and drag to paint in the tile editor. Since we are only changing individual 8x8 graphics, we don't need the tile arranger like we would for larger graphics.

 

Once we have one set of graphics changed, we need to do the same for the other 2 sets. This is the easy part though. All you need to do is drag the corner of the graphics library to make it big enough to see all 3 sets, then drag and drop the new blocks on top of the corresponding blocks of the other sets to copy and paste them. When you are done with this, you can click the little disk button to save the ROM and close TLP.

 

One more step and we will have all the teams updated. Go back into FCEUX and open the file you just saved. We will also need to make another table so let's do that first. With TBLater, replicate this grid and save it as "teamselect2.tbl".

 

team_select_table_2.png

 

Now open the hex editor in FCEUX, select "ROM File" from the View menu, and load the table you just made. Scroll down to "0062F0" and you will see a "...B.N.P.D.J." and so on.

 

TEAM_INI3.png

 

Remember when I said "make sure the hex numbers are accurate" (Go ahead, scroll up. I did say that.) and how I ordered the list? Here is where it is going to help. Since we would have to go back and forth repeatedly to change the letters with new tables in order to change the code by messing with the text, we are going to attack the hex codes straight away. And all we need to do is enter them in the same order as out spreadsheet! Click on the first "B" and then click its highlighted hex on the left (in this case, the "36"). Now just type in your first hex code (mine being "33"). Click the right arrow to skip one (as they are all separated by one hex), then type the next one (for me "35"). Keep doing this until you have completed your list. Since there are two sets (one each for home and away I assume), we will need to do this a second time. Like before, click the "B" right after the set you just did (there is a "J" between the 2 sets for some reason; don't mess with it since it might be important) and then its hex to the left and repeat the same process.

 

There! It took some doing, but we have replaced all the teams! Once you have completed the name changes, either click "File >> Save ROM" to overwrite the custom file or "File >> Save ROM As" and give it a new name. ROM files are very small so I like to make versions of them. That allows me to go back if I make a mistake without having to redo everything, but the choice is yours. Once saved, you can close FCEUX and reopen it, load your custom ROM, and see the changes.

Edited by VertigoKeyz
Link to comment
Share on other sites

STEP 3 - SAY MY NAME, BYOTCH!

 

While replacing the names of 360 ball players in a video game doesn't sound like a day at the beach, it isn't something that is particularly difficult, thanks largely to the way both we and the code are organized. We will need to open up FCEUX once again, go to the ROM hex editor, load the first team select table from the previous step, and get ready to do some typing! Be sure to turn your CAPS LOCK on so that all of the names are capital like the originals. Scroll down to line "011EF0" and you will see all of the original game's players starting with HARRIS from Boston.

 

BL_names.png

 

As you can see in this graphic, all the teams and players are neatly organized with the starting line-up in red, the pitchers in gold, and the benchwarmers in blue. Click on the "H" in HARRIS and go to town. Aren't you glad we made up those roster pages in Step 1??

 

When you are done, save the file or create an new one as you like.

Edited by VertigoKeyz
Link to comment
Share on other sites

STEP 4 - COLOR ME IMPRESSED

 

After that last step, you are probably expecting something complex and challenging this time. Sorry to be the bearer of bad news, but this is going to be quick and easy, but colorful! Literally. Since we did such a good job of planning things out in Step 1, this is going to be little more than changing a couple of dozen hex codes. Once again, open up FCEUX, go to the ROM hex editor, and we don't even need a table this time. Head to line 01B540.

 

teamcolors.png

 

The last 2 hexes are 10 and 0F. These are the corresponding color codes for the uniform and helmet respectively. All we need to do is go through our team planner and replace the hexes with the new ones. Oh, no! I have the helmet codes before the uniform codes! Heh, I had to throw a little curve ball at you. ;) After you're done, you know the routine. After you save, take a moment to play the game and see how it is shaping up.

Edited by VertigoKeyz
Link to comment
Share on other sites

STEP 5 - PLAYING THE RACE CARD

 

Unlike Bad News Baseball, Bases Loaded allows for racial diversity. Well, to the black or white extent anyway. It also allows for facial hair differences; players can be clean shaven, have a moustache, or have a full beard. We can find the code for this mingled in with a bounty of other player information. Don't let that overwhelm you. By a stroke of good luck, each player's information takes up 16 blocks of hex code, so the columns will be perfectly aligned when we go to change them. As per usual, FCEUX, ROM hex editor, you know the drill. This time scroll down to "01CD70".

 

fade.png

 

The second to last hex says "50". This means HARRIS for BOSTON is a left-handed white guy with a moustache? How do I know this? I'm psychic!! No, not really. I just have this guide, and now you do too!

 

appearance_codes.png

 

As I said, players consist of 16 blocks, so after you are done editing HARRIS, just go down one and you are editing MCGRAW, then one down again to FREIDA, and just like that on down. This step is made easier by the fact that the players are ordered just like the team planning forms and following the "BNPDJMKUHOTL" order. Edit away, save, and you have your real life teams ready to play!

Edited by VertigoKeyz
Link to comment
Share on other sites

STEP 6 - MAKE A SPLASH

 

Personally, I consider this step purely optional. But if you really want to make your new mod your own, you will want to go the extra mile (or 90 feet as the case may be) and edit the splash screen. While you are certainly welcome to change the whole screen pixel by pixel, I am going to just make a basic change and add text to the Bases Loaded logo.

 

If you plan on doing this step, you will find this graphic very helpful.

 

02_-_Splash_Map.png

 

If this looks confusing, let me de-confound you. Open your latest mod with TLP again. Scroll all the way down to the bottom of the graphic library and then back up a little bit until you see this.

 

01_-_TLP_Grid.png

 

As we have seen many times before, we have a hex grid 16x16, provided you haven't changed the default window. This grid in conjunction with the other graphic will show you how the splash screen is composed. All you need to do is decide where you want to place your text. Just as we edited the team initials for the gameplay screen, you can edit the blocks to spell out whatever you choose. Just click on the block in the library then use the tile editor to create the new graphic.

 

One thing before you put your text just anywhere: The three blocks below the map represent graphics which are repeated somewhere. "0F" is just a transparent square (the background of the title screen is purple so anywhere you see purple, that is the transparent "color"). "2B" is a full red block, which you can see scattered in various places. Lastly the "D5" block is only used twice, but unfortunately is it USED TWICE!! Again... Freakin' Jaleco! Despite this, there is still plenty of space to throw in text. And don't forget, if you use a letter twice, you can drag and drop in the library to copy. When you are done, save your ROM and enjoy the fruits of your labor!

Edited by VertigoKeyz
Link to comment
Share on other sites

STEP 7 - THE GREAT BEYOND

 

The skills I have presented in this guide should give you a nice fresh game you can enjoy through many innings. If you want to go even deeper (watch out for the wall!), I recommend you check out GRG's post toward the bottom of http://tecmobowl.org/forums/topic/55034-bases-loaded-original-anyone-ever-edit-this/

 

 

With that I wish your feet to be swift, your bats to be mighty, and your balls...to be plentiful.

Link to comment
Share on other sites

  • 2 months later...

Is there any way to do this for Bases Loaded 2 on NES? I have been trying all these methods, and can't get the Hex Editor to load the right .TBL file. It seems to be a lost cause.

 

Even if you load the numbers ($30 => $39) and letters ($61 => $7B) based on what you see in the PPU Viewer (only upper case letters by the way) into a .TBL file, it just gives you garbage in the ROM File of the Hex Editor when you load it. The NES Memory almost resembles something, but not quite. I don't know what to do and this is my favorite game by far.

 

Help! :(

Edited by El_Heff
Link to comment
Share on other sites

  • 2 years later...

first of all, thanks for making an editor for this great classic! bases loaded is one of my favorite baseball games, mainly because it uses the pitcher's perspective instead of the batter's.

 

aside from modding the names and graphics, can i mod their stats/attributes? that would be so awesome!😁

 

and one more thing, the image server url postimg.org has been changed to postimage.cc , but i still get a 404 not found for some images. otherwise this program works flawlessly!😀

 

 

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