logo
 drop

Main

Community

Submissions

Help

88366559 visitors

Author Topic: Baseball Simulator 1.000  (Read 2210 times)

keithisgood

  • Full Member
  • ***
  • Posts: 182
  • [DANGER ! ! ! ! ! ! ] [TERROR HORROR]
    • View Profile
    • keithisgood
Baseball Simulator 1.000
« on: May 31, 2012, 04:10:15 pm »
Finally got a beta done! .ips is here: https://www.dropbox.com/s/j9q2czsanoz1y3a/Baseball%20Simlulator%202012.ips
Requires a clean copy of Baseball Simulator 1.000

Sorry beforehand if the questions here seem inane.

I'm working on an update hack of Culture Brain's Baseball Simulator 1.000 (think Tecmo Bowl 2012 but for baseball). THought it would be fairly easy--update some names, logos, stats.

I'm running into a few unexpected problems. First, it seems some of the text is stored separate from the rest. The prime example being some garbled letters on the team select screen. I've managed to change the league names, but the last letters remain the same to the original rom, so instead of American and National, it says Americac and Nationan. I suspect its a problem with the table I built, but I'm flummoxed. I've attached a screenshot below:


Also, one team logo (the Mets in this case) seems to be drawing from two separate palettes. I've read through the Beginners Documentation on the site, but don't see much on changing palettes, colors, etc. If possible, I'd like to change some of the other logo palettes as well. Even a nudge in the right direction would be helpful.

And once I get down to it, how would I go about finding where player stats are stored? Is there a method I'm unaware of or would I have to do some trial and error with FCEUX's hex editor open while I play?

The ips for what i've got so far is here:https://sites.google.com/site/keithisgoodfiles/bbsim2012.ips
And here's the table file I'm using for text eding: https://sites.google.com/site/keithisgoodfiles/bbsim2012.tbl

Thanks!
« Last Edit: June 19, 2012, 11:57:13 am by keithisgood »

KingMike

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 4907
  • *sigh* A changed avatar. Big deal.
    • View Profile
Re: Baseball Simulator 1.000
« Reply #1 on: May 31, 2012, 07:53:31 pm »
You're going to have to get comfortable with the FCEUX debugger.

To solve the problem with the wrong palette:
Palette are assigned using a "attribute table". You can see it by opening the hex editor in FCEUX, then choosing PPU. The name table is probably address $23C0-23FF. Each 2 bits in the name table assigns the palette for a 16x16 pixel (2 tile by 2 tile) potion of the screen. So, a full byte controls are area 4 tiles wide by 4 tall. 8 bytes will control an area 32 tiles wide (the full screen width) by 4 tiles tall. So you can use that to mathmatically narrow down what byte controls the problem tiles.
Or just randomly change the values in the hex editor and see where on the screen the colors get corrupted.
But when you need to change that, it's usually easy. The attribute table is small enough that it is often stored uncompressed in the ROM. So you when see the full table in PPU RAM, just search for a match for the same data in the ROM.

As for the wrong letters, that's a bit harder to solve if you don't know ASM. You can do it with the debugger.
Open the Name Table window, point to the tile, notice the PPU Address (and the tile ID, which is the value for the letter you're clicking on) on the Properties area in the corner of the window.
Now reset and get to one screen before the error.
Go to the Debugger, go over to Breakpoints, click Add..., type the address, click PPU and Write. OK.
Now run the game. Hit the button to make the game load the team select screen. The debugger will come up stopping on the instruction that is trying to write to the PPU RAM (it's probably a STA $2007 instruction, or Store A to $2007. Now go look at the "A" register to the side to see the value it's trying to write. Is the same as the Tile ID for the character? No, then click Run to continue. Yes, then scroll up a couple times to see the instruction that loaded the value. (I get LDA $0141,X @ $014D = #$0C if you're following along.
That means it read #$0C (the tile ID for the letter C) from address $014D. $014D is a RAM address, so we need to trace back to find the ROM address.
So now, we need to use the debugger to find out how C go into address $014D.
Erase the current Breakpoint from the list and then reset the game.
Now we want to repeat the process to find how #$0C got written into $014D.
And repeat until we find it has read from a ROM address (something between $8000-FFFF). This could go awhile.
Quote
Sir Howard Stringer, chief executive of Sony, on Christmas sales of the PS3:
"It's a little fortuitous that the Wii is running out of hardware."

keithisgood

  • Full Member
  • ***
  • Posts: 182
  • [DANGER ! ! ! ! ! ! ] [TERROR HORROR]
    • View Profile
    • keithisgood
Re: Baseball Simulator 1.000
« Reply #2 on: May 31, 2012, 08:19:30 pm »
Thanks for pointing me in the right direction!

Validus

  • Hero Member
  • *****
  • Posts: 765
  • Location: Illusion City (MSX Version)
    • View Profile
Re: Baseball Simulator 1.000
« Reply #3 on: May 31, 2012, 10:20:20 pm »
Looks really good with a lot of those logos

For some reason I loved this game soooo much as a kid, but now when I play the newly translated SNES ones, they are unplayable to me . I dont know if I just suck at baseball games or if they increased the difficulty because I used to ROCK the NES version.

keithisgood

  • Full Member
  • ***
  • Posts: 182
  • [DANGER ! ! ! ! ! ! ] [TERROR HORROR]
    • View Profile
    • keithisgood
Re: Baseball Simulator 1.000
« Reply #4 on: June 01, 2012, 08:13:32 am »
I feel the same way. The SNES games just aren't the same.

June 04, 2012, 03:00:08 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
@ KingMike:

And if the PPU table isn't stored uncompressed? I've searched the rom for various strings within the PPU table and come up empty.
« Last Edit: June 04, 2012, 03:00:08 pm by keithisgood »

mnhacker

  • Newbie
  • *
  • Posts: 9
    • View Profile
Re: Baseball Simulator 1.000
« Reply #5 on: June 09, 2012, 12:41:51 am »
I know your question was for king mike
But I messed around with the rom some- dont have any good news. It looks like there are two att tables used for that screen. Looks like its loaded from x95C1 (all 55s).  That's as far as I got.  There are some bytes (05,A5) loaded seperatly in RAM onto the att table.

keithisgood

  • Full Member
  • ***
  • Posts: 182
  • [DANGER ! ! ! ! ! ! ] [TERROR HORROR]
    • View Profile
    • keithisgood
Re: Baseball Simulator 1.000
« Reply #6 on: June 11, 2012, 11:52:18 am »
Thanks for taking a look, mmhacker. I think I'll use this as an excuse to learn some NES Assembly language, see what I can end up with.

mnhacker

  • Newbie
  • *
  • Posts: 9
    • View Profile
Re: Baseball Simulator 1.000
« Reply #7 on: June 11, 2012, 06:07:10 pm »
I don't know much asm
What I did was open up the hex editor on the team select screen
right clicked on x23C8 (start of att table) and selected "add write breakpoint"
reset the game, when the debugger snaps (game freezes) kept hitting "run" on the debugger until right before the team select screen
kept scorlling up in debugger and hitting "run" until I see $55 getting loaded
LDA ($40),Y @ $014C = #$55
goto 014C (NES mem)in hex editor and set breakpoint (delete old breakpoint)
repeat previous steps until I see $55 getting loaded again
LDA $0440,Y @ $0448 = #$55 (took lots of snaps to find this)
set breakpoint at 0448
LDA ($06),Y @ $95B1 = #$55
I can tell from exp this is a ROM address - type in "seek to" 95B1 in debugger
search for the values on left side (all 55s) in seperate hex editor (non fceuxd hex editor)
I changed to all FF and loaded the rom, looked in fceuxd hex editor at x23C8 PPU mem to see if it was changed which it was so I have the right location, but its a pain in the ass because the att table isnt all 55s

What needs to be done is try to follow one of non 55 bytes on the att table the same way I did to get a ROM address

Proveaux

  • Jr. Member
  • **
  • Posts: 79
    • View Profile
Re: Baseball Simulator 1.000
« Reply #8 on: June 11, 2012, 10:26:13 pm »
Try the below ips.
http://db.tt/8zZZ9s5G

keithisgood

  • Full Member
  • ***
  • Posts: 182
  • [DANGER ! ! ! ! ! ! ] [TERROR HORROR]
    • View Profile
    • keithisgood
Re: Baseball Simulator 1.000
« Reply #9 on: June 12, 2012, 10:16:38 am »
Proveaux, you beautiful b@stard, you! Cheers! If I wanted to change BEST to LEGENDS, I would do so through breakpoints via the debugger? Find where the blank tiles are being loaded and replace them with letters?

mnhacker: Thanks for the pointers. I think I get the general idea of using the debugger, I just need some free time to wade into it.

Right now I'm trying to find usable pitching stats to plug into the game's variables (finding right curve and left curve stats is exceedingly difficult).

mnhacker

  • Newbie
  • *
  • Posts: 9
    • View Profile
Re: Baseball Simulator 1.000
« Reply #10 on: June 12, 2012, 07:08:21 pm »
If I wanted to change BEST to LEGENDS, I would do so through breakpoints via the debugger? Find where the blank tiles are being loaded and replace them with letters?

Text doesn't always work that way there could be 10-50 spots using one blank space to save room. Sometimes you can just add letters with no problem depends how its laid out.  Other times there are pointers telling where each text string begins

Proveaux

  • Jr. Member
  • **
  • Posts: 79
    • View Profile
Re: Baseball Simulator 1.000
« Reply #11 on: June 12, 2012, 11:11:50 pm »
Your welcome. Sorry I couldnt help more but dont have the technical know how when it comes to pointers and debuggers. Need to learn this stuff too.

keithisgood

  • Full Member
  • ***
  • Posts: 182
  • [DANGER ! ! ! ! ! ! ] [TERROR HORROR]
    • View Profile
    • keithisgood
Re: Baseball Simulator 1.000
« Reply #12 on: June 13, 2012, 10:35:46 am »
mnhacker: I see. I think I'll just change Best to STAR for simplicity's sake for now.


Proveaux

  • Jr. Member
  • **
  • Posts: 79
    • View Profile
Re: Baseball Simulator 1.000
« Reply #13 on: June 13, 2012, 11:13:33 am »
Forgot to mension. Team logo's start at 3D08B and go in order. First logo goes D0E0F0D1E1F1 for the tiles followed by 01. 01 being the palette used.
00=1st palette
01=2nd palette
02=3rd palette
03=4th palette
Follow this pattern for the rest. The last one is different. Dont know how to change palette for right side of logo.

For the AMERICAN, NATIONAL, and BEST, they start at 10096. Their pattern is that they follow your tbl except the last letter adds 80 to its hex value. This lets it know the end of word.

keithisgood

  • Full Member
  • ***
  • Posts: 182
  • [DANGER ! ! ! ! ! ! ] [TERROR HORROR]
    • View Profile
    • keithisgood
Re: Baseball Simulator 1.000
« Reply #14 on: June 14, 2012, 09:19:36 am »
Ahh, Wonderful! Again, many thanks!