Dee-Nee Forums

General => RBI Baseball => Topic started by: ProfessorW on 09/12/25, 11:08:11 AM

Title: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: ProfessorW on 09/12/25, 11:08:11 AM
Hi.
I have been working in translations for Pro Yakyuu (therefor PY) and Pro Yakyuu 87 (therefor PY87) ROMs (we can think of RBI Baseball as a sort of Pro Yakyuu 86.5), I have included them here if you want to give them a try. The idea is to change all the text in japanese to western
characters.

One of the main differences between these two games and RBI Baseball is the length of the player name. In RBI Baseball is 6 char long, in these two japanese games is 4 char long.
Further Pro Yakyuu games use player names of 5 char long.
Apparently patches existed according to this page (https://web.archive.org/web/20070603224952/http://wakaranai.hp.infoseek.co.jp/famista/namae5moji.shtml), but it does not exists anymore and only archive.org snapshots prevail (translated image provided). However it gives enough tech info on how to achieve it.

I've played with Mesen emulator and it's PPU debugger, and found that modifying the following PPU address gives the desired effect

Batter-Pitcher instance
$2328 - 5th character 1P player
$233E - 5th character CM/2P player

SELECT PITCHER 5th character locations
$2988 - 1st pitcher 1P
$29C8 - 2nd pitcher
$2A08 - 3rd pitcher
$2A48 - 4th pitcher
$299B - 1st pitcher CM/2P
$29DB - 2nd pitcher
$291B - 3rd pitcher
$295B - 4th pitcher

Unfortunately I lack the assembly skills to properly modify the rom. So, I'm asking for help here. The idea is to copy from the offset F of the player data to the accordingly PPU address.

I hope someone can help me with this one. It'll make more readable the rom when using players with western names.

If you're wondering, yes, I want to change teams and players in all ProYakyuu games like we can do in RBI Baseball. It'll take years, but I've working in my spare time.

Thanks in advance.

Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: Beastmode on 09/15/25, 06:40:22 PM
Ok I can probably help here as an RBI editor myself. Here are a couple questions:

1. Do you just want to apply the 5-letter patch or the patch and be able to change the player and team names?
2. Do you have the rom(s) you want to edit?
3. Do you know the hex location for where the names are on the rom?

Please let me know about the above stuff and then I will see what I can do. Thanks!
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: NoroNoro on 09/16/25, 04:15:42 AM
Hello. I am Japanese and I am interested in developing tools and making modifications for Famista (RBI Baseball), and that's why I joined this forum.
However, my English is not very strong, and my understanding of assembly is still limited.

Even so, I would like to learn here and hopefully contribute little by little. Thank you for having me.

-----
I think the paga document you referenced is from the time when the purpose of offsets 0E and 0F was still unknown.
As far as I know, offset 0F is now understood to store the pitcher's pitch distribution data.
So it may not be suitable to use it directly as the 5th character of the player's name.

I'm still learning assembly, so my knowledge is limited, but I hope this helps.


===============================================================

こんにちは。私は日本人で、ファミスタ(RBI Baseball)のツール開発や改造に興味があり、ここに参加しました。
ただし、私は英語があまり得意ではありません。また、アセンブラについてもまだ理解が浅い状態です。

それでも、このフォーラムで学び、少しずつでも貢献できればと思っています。どうぞよろしくお願いします。

-----
参考にされた paga の資料は、オフセット 0E と 0F の用途がまだ不明とされていた頃のものだと思います。
私の理解では、オフセット 0F には投手の投げ分けデータが格納されていることが分かっています。
そのため、選手名の 5 文字目としてそのまま使うのは適切ではないかもしれません。

私はまだアセンブリを勉強中で知識も限られていますが、少しでも参考になれば幸いです。
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: Gantry on 09/16/25, 05:22:52 AM
Welcome ProfessorW and NoroNoro, who (I think) is our first Japanese member! Do not worry about your English, we understood you 100% and if there are any mistakes we will help you.

Any sort of work on FamSta is certainly welcome, though I have to admit I didn't do much if any work on it back when I studied the code and the the "two player pause" and "pick the same team" ROM hacks.
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: BeefMaster on 09/16/25, 07:10:25 AM
Yeah... I always found this stuff EXTREMELY cool, but I also didn't know assembly well enough to actually contribute to the discussions, just enough that I could (usually) understand some of what nightwulf was talking about.
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: BeefMaster on 09/16/25, 07:11:37 AM
And I will second Gantry's comment to NoroNoro - your English is great, and it's definitely 100000000% better than I would be in any non-English language.
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: ProfessorW on 09/17/25, 10:17:52 AM
Quote from: Gantry on 09/16/25, 05:22:52 AMWelcome ProfessorW and NoroNoro, who (I think) is our first Japanese member! Do not worry about your English, we understood you 100% and if there are any mistakes we will help you.

Any sort of work on FamSta is certainly welcome, though I have to admit I didn't do much if any work on it back when I studied the code and the the "two player pause" and "pick the same team" ROM hacks.

Thanks for the welcome.

Quote from: NoroNoro on 09/16/25, 04:15:42 AMHello. I am Japanese and I am interested in developing tools and making modifications for Famista (RBI Baseball), and that's why I joined this forum.
However, my English is not very strong, and my understanding of assembly is still limited.

Even so, I would like to learn here and hopefully contribute little by little. Thank you for having me.

-----
I think the paga document you referenced is from the time when the purpose of offsets 0E and 0F was still unknown.
As far as I know, offset 0F is now understood to store the pitcher's pitch distribution data.
So it may not be suitable to use it directly as the 5th character of the player's name.

I'm still learning assembly, so my knowledge is limited, but I hope this helps.


===============================================================

こんにちは。私は日本人で、ファミスタ(RBI Baseball)のツール開発や改造に興味があり、ここに参加しました。
ただし、私は英語があまり得意ではありません。また、アセンブラについてもまだ理解が浅い状態です。

それでも、このフォーラムで学び、少しずつでも貢献できればと思っています。どうぞよろしくお願いします。

-----
参考にされた paga の資料は、オフセット 0E と 0F の用途がまだ不明とされていた頃のものだと思います。
私の理解では、オフセット 0F には投手の投げ分けデータが格納されていることが分かっています。
そのため、選手名の 5 文字目としてそのまま使うのは適切ではないかもしれません。

私はまだアセンブリを勉強中で知識も限られていますが、少しでも参考になれば幸いです。

Well, since my main language is not english (I'm spaniard, living in Mexico), and I understood you quite fine, you can be sure your english is quite fine also.

Thanks for the info about the last byte of pitcher data, I did not know that.

Quote from: Beastmode on 09/15/25, 06:40:22 PMOk I can probably help here as an RBI editor myself. Here are a couple questions:

1. Do you just want to apply the 5-letter patch or the patch and be able to change the player and team names?
2. Do you have the rom(s) you want to edit?
3. Do you know the hex location for where the names are on the rom?

Please let me know about the above stuff and then I will see what I can do. Thanks!

Thanks for the help. Answering your questions:

1. Yes, I'm currently working on the data, and I want to standarize this rom (and ProYakyuu 87) with the rest of FamSta NES games which uses 5 characters. It would make things a bit easier.
2. Yes, I have them, are from the NoIntro packages. I can post them here if needed.
3.
It's a headered rom:

teamNumber starts at $10.
16 bytes per player, 16 players. So next team starts at $110 and so on, until $A0F.

BOTH HITTERS AND PITCHERS
Byte 00 - playerNumber.
Bytes 01 to 04 - Name.

The structure is quite similar to RBI Baseball, if you need the full structure it I can post it.

Since last byte of pitcher data is already used (as NoroNoro said), the next proposal would be storing the extra data in an empty or unused section in the rom (unfortunately I don't know how to properly identify it) of 160 continuous bytes, one per player, and calculated:

Offset + ((teamNumber * 16) + playerNumber)

Both teamNumber and playerNumber starts counting at 0.

If more info is needed, let me know.
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: ProfessorW on 09/17/25, 10:21:53 AM
Forgot to tell.

The values in the table used for names in FamSta roms range from 00 to 57, so don't be surprised when these values appear at the hex location of names.
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: NoroNoro on 09/17/25, 12:58:25 PM
I feel relieved that my English was understood, and I'm really glad that a Spaniard like you has such interest in Japanese baseball — thank you for that!

About the offset values $0E and $0F: these are the data used for the COM's pitching variation, and they are referenced randomly.
If the value is $80, the pitcher aims straight down the middle.
If it's $75, he aims at the left corner of home plate, and if it's $8B, he aims at the right corner.

It seems the two values define the "range" of where the COM will randomly aim, and that's how the game expresses each pitcher's characteristics.
However, in many Japanese ROM hacks of "Pro Yakyuu - Family Stadium" and "Pro Yakyuu - Family Stadium '87", these bytes were not well understood, so they were often reused for names or other unrelated purposes.

=======================================================

私の英語が通じて安心しましたし、スペインの方が日本の野球に興味を持ってくれていることにとても感謝しています。ありがとうございます!

オフセット 0E と 0F についてですが、これはCOMが投げ分けを決めるためのデータで、ゲーム中にランダムで参照されます。
仮に、値が $80 のときはど真ん中を狙います。
仮に、$75 の場合はホームベースの左隅を狙い、$8B の場合は右隅を狙います。

この2つの値によってCOMがランダムに投げる範囲が決まり、投手の個性が表現されているようです。
しかし、多くの日本人による 『プロ野球 ファミリースタジアム』 や 『プロ野球 ファミリースタジアム 87年度版』 のハックROMでは、この仕組みが十分に理解されておらず、名前など別の用途に流用されているケースが多いようです。
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: ProfessorW on 09/17/25, 01:24:39 PM
I have been living for a few years in a mexican city with the oldest baseball team (Sultanes de Monterrey) still around, since I got sick of local sports media talking only of soccer (football) I got hooked with baseball.

Thanks for the info about offsets $0E and $0F in PY and PY87 pitcher data. For what I understand these values cannot be calculated from real stats like struckouts or ERA, so it's better to not touch them. And also explains some weird behaviour in my earlier experiments, when I modified those offsets thinking it was harmless.

Can I also request your help with some IPs patches I found on another FamSta japanese site? I have trouble understanding what effect some of them have on the game.
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: Gantry on 09/17/25, 02:23:38 PM
Pasé dos meses en MTY hace 8 años (creo), cerca de barrio antiguo. Buen pedos los regios... I didn't see the Sultanes though, buddy took me to the Rayados - like you said everyone is soccer crazy there. 
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: ProfessorW on 09/17/25, 02:39:28 PM
Things have changed a bit, around 6 or 7 years, Grupo Multimedios, an important media network here acquired shares of the club (at the same time they lost the economical favor of one of the local soccer teams), and since then, the marketing of the team has improved considerably. You can find caps in supermarkets and flea markets, unconceivable 7 years ago. Those guys literally sell shit in their produced shows, but they're incredibly good at selling them.

Also, they are more worried making money of using the (right now called) Walmart Park for musical shows than the team winning championships.  :D
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: NoroNoro on 09/18/25, 02:13:10 AM
My understanding of assembly is still limited, so I'm not sure how much I can do. But if there's anything I can help with, I'll be glad to try.

===================================================

アセンブラについてもまだ理解が浅いので、どこまでできるか判りませんが、私にできることであればお手伝いさせてください。
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: Beastmode on 09/18/25, 11:21:56 AM
Quote from: ProfessorW on 09/17/25, 10:17:52 AM
Quote from: Gantry on 09/16/25, 05:22:52 AMWelcome ProfessorW and NoroNoro, who (I think) is our first Japanese member! Do not worry about your English, we understood you 100% and if there are any mistakes we will help you.

Any sort of work on FamSta is certainly welcome, though I have to admit I didn't do much if any work on it back when I studied the code and the the "two player pause" and "pick the same team" ROM hacks.

Thanks for the welcome.

Quote from: NoroNoro on 09/16/25, 04:15:42 AMHello. I am Japanese and I am interested in developing tools and making modifications for Famista (RBI Baseball), and that's why I joined this forum.
However, my English is not very strong, and my understanding of assembly is still limited.

Even so, I would like to learn here and hopefully contribute little by little. Thank you for having me.

-----
I think the paga document you referenced is from the time when the purpose of offsets 0E and 0F was still unknown.
As far as I know, offset 0F is now understood to store the pitcher's pitch distribution data.
So it may not be suitable to use it directly as the 5th character of the player's name.

I'm still learning assembly, so my knowledge is limited, but I hope this helps.


===============================================================

こんにちは。私は日本人で、ファミスタ(RBI Baseball)のツール開発や改造に興味があり、ここに参加しました。
ただし、私は英語があまり得意ではありません。また、アセンブラについてもまだ理解が浅い状態です。

それでも、このフォーラムで学び、少しずつでも貢献できればと思っています。どうぞよろしくお願いします。

-----
参考にされた paga の資料は、オフセット 0E と 0F の用途がまだ不明とされていた頃のものだと思います。
私の理解では、オフセット 0F には投手の投げ分けデータが格納されていることが分かっています。
そのため、選手名の 5 文字目としてそのまま使うのは適切ではないかもしれません。

私はまだアセンブリを勉強中で知識も限られていますが、少しでも参考になれば幸いです。

Well, since my main language is not english (I'm spaniard, living in Mexico), and I understood you quite fine, you can be sure your english is quite fine also.

Thanks for the info about the last byte of pitcher data, I did not know that.

Quote from: Beastmode on 09/15/25, 06:40:22 PMOk I can probably help here as an RBI editor myself. Here are a couple questions:

1. Do you just want to apply the 5-letter patch or the patch and be able to change the player and team names?
2. Do you have the rom(s) you want to edit?
3. Do you know the hex location for where the names are on the rom?

Please let me know about the above stuff and then I will see what I can do. Thanks!

Thanks for the help. Answering your questions:

1. Yes, I'm currently working on the data, and I want to standarize this rom (and ProYakyuu 87) with the rest of FamSta NES games which uses 5 characters. It would make things a bit easier.
2. Yes, I have them, are from the NoIntro packages. I can post them here if needed.
3.
It's a headered rom:

teamNumber starts at $10.
16 bytes per player, 16 players. So next team starts at $110 and so on, until $A0F.

BOTH HITTERS AND PITCHERS
Byte 00 - playerNumber.
Bytes 01 to 04 - Name.

The structure is quite similar to RBI Baseball, if you need the full structure it I can post it.

Since last byte of pitcher data is already used (as NoroNoro said), the next proposal would be storing the extra data in an empty or unused section in the rom (unfortunately I don't know how to properly identify it) of 160 continuous bytes, one per player, and calculated:

Offset + ((teamNumber * 16) + playerNumber)

Both teamNumber and playerNumber starts counting at 0.

If more info is needed, let me know.


If you have the full rom hex layout that would be amazing please send
Also, please send the roms, just so I know I have the right ones
One question: what does the patch u mentioned earlier do and is the one you posted on your original message the name patch or something else?
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: Ninja Baseball Batman on 09/18/25, 11:39:36 AM
It would be awesome to modify some of the famista games with RBI rosters. I can't recall which game it is but it has a box showing the batters statistics for game
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: ProfessorW on 09/18/25, 12:35:46 PM
This is the layout of the ROM (included in the zip, alongside patch for the WIP translation) according to my notes:

Player Data
Starts at $10
16 bytes per player
BOTH BATTER AND PITCHER
 Byte 0 - numPlayer
 Byte 1 to 4 - Name

BATTER
 Byte 5 - Bats (0 R, 1 L)
 Byte 6 - Batting Average - 150
 Byte 7 - Homeruns
 Byte 8 - Contact
 Byte 9 - 2nd byte of power
 Byte A - 1st byte of power (ie, if $19 = B8, and $1A = 02, it should be read as x2B8)
 Byte B - Speed 

PITCHER
 Byte 5 - Throws (values 0 to 3)
   00 - Right Over
   01 - Left Over
   02 - Right SideArm
   03 - Left SideArm
 Byte 6 - ERA * 10
 Byte 7 - Sink Speed
 Byte 8 - Curve Speed
 Byte 9 - Fastball
 Byte A - Curve Right
 Byte B - Curve Left
 Byte C - Sink Skill
 Byte D - Stamina

TEXT AT INTRO SCREEN
 Copyright: $2F51 (17 bytes)
 License: $2F65 (19 bytes)
 Teams: $30EA (24 bytes)

TEAM INFO
NAME: 1 byte, starts at $B058, 10 continuous bytes.

COLORS
Two Sections:
SECTION 1: Starts at $3239, 3 bytes per team
 Byte 1 - Cap
 Byte 2 - Skin
 Byte 3 - Uniform

SECTION 2: Starts at $9E76, 4 bytes per team
 Bytes 1-3: same as above
 Byte 4: Color of public when team is playing, look at screenshot in the post

*** TILES, not direct data.
LOGOS (Used in Scoreboard)
Even when there is one letter, it uses two sprites
Team G (1): $11818 (Letter 1), $11838 (Letter 2)
Team L (2): $11858 (Letter 1), $11878 (Letter 2)
Team R (3): $11898 (Letter 1), $118B8 (Letter 2)
Team C (4): $118D8 (Letter 1), $118F8 (Letter 2)
Team T (5): $11918 (Letter 1), $11938 (Letter 2)
Team F (6): $11958 (Letter 1), $11978 (Letter 2)
Team W (7): $11998 (Letter 1), $119B8 (Letter 2)
Team D (8): $119D8 (Letter 1), $119F8 (Letter 2)
Team S (9): $11828 (Letter 1), $11848 (Letter 2)
Team N (10): $11868 (Letter 1), $11888 (Letter 2)

Also in these places
Team G (1): $150B8
Team L (2): $150C8
Team R (3): $150F8
Team C (4): $15108
Team T (5): $15138
Team F (6): $15148
Team W (7): $15178
Team D (8): $15188
Team S (9): $151B8
Team N (10): $151C8

LOGOS in NEWSPAPER at end of match
Even when there is one letter, it uses two sprites
Team G (1): $10C10 (Letter 1), $10C30 (Letter 2)
Team L (2): $10C50 (Letter 1), $10C70 (Letter 2)
Team R (3): $10C90 (Letter 1), $10CB0 (Letter 2)
Team C (4): $10CD0 (Letter 1), $10CF0 (Letter 2)
Team T (5): $10D10 (Letter 1), $10D30 (Letter 2)
Team F (6): $10D50 (Letter 1), $10D70 (Letter 2)
Team W (7): $10D90 (Letter 1), $10DB0 (Letter 2)
Team D (8): $10DD0 (Letter 1), $10DF0 (Letter 2)
Team S (9): $10E10 (Letter 1), $10E30 (Letter 2)
Team N (10): $10E50 (Letter 1), $10E70 (Letter 2)

Hope it helps.


Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: ProfessorW on 09/18/25, 03:37:58 PM
I forgot. The IP Patches I mentioned were downloaded from this site (use Google Translate)

http://www.ttttom.website/Mayuemp/Famista/Patch/Patch.html

Basically are zips with a lot of IPS patches, including a README in japanese. The description of some patches in the README did not make too much sense to me, but probably the same README file was used in all the packs for all the different FamSta games.

@NoroNoro, I was more interested in what the README says for some of the patches, that was I tried to wrote in the previous post.

Many of them break the game, but a couple of them are interesting: DH, Uniform_94 (including screenshot of this one when applied to the game). I want to test the 2P one, which if I understood the file, allows second player to pause the game.
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: ProfessorW on 09/18/25, 04:10:15 PM
Quote from: Ninja Baseball Batman on 09/18/25, 11:39:36 AMIt would be awesome to modify some of the famista games with RBI rosters. I can't recall which game it is but it has a box showing the batters statistics for game

It's my goal, but not only with RBI rosters.
But patience, probably will take me years.
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: BeefMaster on 09/19/25, 12:52:56 PM
Quote from: ProfessorW on 09/18/25, 03:37:58 PMI want to test the 2P one, which if I understood the file, allows second player to pause the game.

This is something that nightwulf had built into standard RBI at one point, so it's definitely possible, and the code might be in a forum thread here as well.
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: Gantry on 09/19/25, 01:19:46 PM
I'm pretty sure I wrote/modified the code for the second player pause in US RBI, but I don't remember any details. I doubt I have any files on it, unless I made a forum post with the specifics. 
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: NoroNoro on 09/19/25, 11:57:16 PM
I also use patches from this person (Mayutch) to edit and play with Famista '93. I haven't really worked with the first Famista.

I think 2PTime.ips should work as well. (However, since it's the type of patch that writes a subroutine into a free area, it may break if another patch overlaps that area. In that case, you just need to relocate the address.)

About enabling "Time Call" with the second controller

1. Find the routine that checks controller 1's input address $0B for the value #$10 (Start button), and identify the time-call check
2. Turn that time-call check into a new subroutine and branch to it
3. In the new subroutine, reuse the controller 1 check, and also check controller 2's $0C. If either is pressed, jump to the original time-call routine and then return

First Famista
=============
(before)
A5 0B          LDA $0B
29 10          AND #$10
D0 06          BNE $AAF6
--------
(after)
20 78 EF       JSR $EF78  ; jump to a free area (address is up to you)
EA             NOP
EA             NOP
EA             NOP
(new) subroutine (place it at $EF78 or any free area you prefer)
$EF78:
A5 0B          LDA $0B
29 10          AND #$10
D0 07          BNE $EF85
A5 0C          LDA $0C
29 10          AND #$10
D0 01          BNE $EF85
60             RTS
$EF85:
4C F6 AA       JMP $AAF6

->I have updated the code.

-------------------------------------------------------------------------------
私もこの方(Mayutchさん)のパッチを利用させてもらってファミスタ'93を編集して遊んでいます。私は初代ファミスタは使ったことがありません。

2PTime.ipsも動作すると思いますよ。(ただし、空きエリアにサブルーチンを書いているタイプのパッチなので、他のパッチとエリアが被ると壊れる可能性があります。その場合はアドレスを変えてあげれば大丈夫です。)

2コントローラーでの「タイムコール」について

1) 1コントローラの入力アドレスの$0Bの値#$10(スタートボタン)を確認する処理を探し、タイムコール判定を見つける
2) 判明したタイムコール判定を新しくサブルーチン化し、そこにジャンプさせる
3) サブルーチンでは1コントローラーの判定を移植し、2コントローラーの$0Cでも判定し、今までどおりタイムコールサブルーチンへジャンプさせ、サブルーチンから抜ける

初代ファミスタ
==============
(before)
A5 0B          LDA $0B
29 10          AND #$10
D0 06          BNE $AAF6
--------
(after)
20 78 EF       JSR $EF78  ; 空きエリアにジャンプ(アドレスはお好みで)
EA             NOP
EA             NOP
EA             NOP
(new) サブルーチン($EF78 または任意の空きエリアに配置)
$EF78:
A5 0B          LDA $0B
29 10          AND #$10
D0 07          BNE $EF85
A5 0C          LDA $0C
29 10          AND #$10
D0 01          BNE $EF85
60             RTS
$EF85:
4C F6 AA       JMP $AAF6

-> コードを修正しました。
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: NoroNoro on 09/20/25, 12:13:32 AM
Quick way to enable the monitor in the first Famista

Reference: https://tcrf.net/R.B.I._Baseball

Memory address $183:
#$00 → Monitor ON
#$01 → Monitor OFF
-------------------------------------------------------------------------------
初代ファミスタで簡単にモニターを起動する方法

参考:https://tcrf.net/R.B.I._Baseball

メモリアドレス $183:
#$00 → モニターON
#$01 → モニターOFF
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: ProfessorW on 09/20/25, 12:24:41 PM
Quote from: NoroNoro on 09/19/25, 11:57:16 PMI also use patches from this person (Mayutch) to edit and play with Famista '93. I haven't really worked with the first Famista.

I think 2PTime.ips should work as well. (However, since it's the type of patch that writes a subroutine into a free area, it may break if another patch overlaps that area. In that case, you just need to relocate the address.)

About enabling "Time Call" with the second controller

1. Find the routine that checks controller 1's input address $0B for the value #$10 (Start button), and identify the time-call check
2. Turn that time-call check into a new subroutine and branch to it
3. In the new subroutine, reuse the controller 1 check, and also check controller 2's $0C. If either is pressed, jump to the original time-call routine and then return

First Famista
=============
(before)
A5 0B          LDA $0B
29 10          AND #$10
D0 06          BNE $AAF6
--------
(after)
20 78 EF       JSR $EF78  ; jump to a free area (address is up to you)
EA             NOP
EA             NOP
EA             NOP
(new) subroutine (place it at $EF78 or any free area you prefer)
$EF78:
A5 0B          LDA $0B
29 10          AND #$10
D0 07          BNE $EF85
A5 0C          LDA $0C
29 10          AND #$10
D0 01          BNE $EF85
60             RTS
$EF85:
4C F6 AA       JMP $AAF6

->I have updated the code.

-------------------------------------------------------------------------------
私もこの方(Mayutchさん)のパッチを利用させてもらってファミスタ'93を編集して遊んでいます。私は初代ファミスタは使ったことがありません。

2PTime.ipsも動作すると思いますよ。(ただし、空きエリアにサブルーチンを書いているタイプのパッチなので、他のパッチとエリアが被ると壊れる可能性があります。その場合はアドレスを変えてあげれば大丈夫です。)

2コントローラーでの「タイムコール」について

1) 1コントローラの入力アドレスの$0Bの値#$10(スタートボタン)を確認する処理を探し、タイムコール判定を見つける
2) 判明したタイムコール判定を新しくサブルーチン化し、そこにジャンプさせる
3) サブルーチンでは1コントローラーの判定を移植し、2コントローラーの$0Cでも判定し、今までどおりタイムコールサブルーチンへジャンプさせ、サブルーチンから抜ける

初代ファミスタ
==============
(before)
A5 0B          LDA $0B
29 10          AND #$10
D0 06          BNE $AAF6
--------
(after)
20 78 EF       JSR $EF78  ; 空きエリアにジャンプ(アドレスはお好みで)
EA             NOP
EA             NOP
EA             NOP
(new) subroutine (place it at $EF78 or any free area you prefer)
$EF78:
A5 0B          LDA $0B
29 10          AND #$10
D0 07          BNE $EF85
A5 0C          LDA $0C
29 10          AND #$10
D0 01          BNE $EF85
60             RTS
$EF85:
4C F6 AA       JMP $AAF6

-> コードを修正しました。

WOW, I'm amazed. I can grasp some concepts in this explanation, but still lacking the needed how-to.
So basically any assembly instruction it's the same when translated to byte? Amazing, I'll look at patched files with new eyes.
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: NoroNoro on 09/21/25, 01:32:16 AM
Quote from: ProfessorW on 09/18/25, 03:37:58 PMI forgot. The IP Patches I mentioned were downloaded from this site (use Google Translate)

http://www.ttttom.website/Mayuemp/Famista/Patch/Patch.html

Basically are zips with a lot of IPS patches, including a README in japanese. The description of some patches in the README did not make too much sense to me, but probably the same README file was used in all the packs for all the different FamSta games.

@NoroNoro, I was more interested in what the README says for some of the patches, that was I tried to wrote in the previous post.

Many of them break the game, but a couple of them are interesting: DH, Uniform_94 (including screenshot of this one when applied to the game). I want to test the 2P one, which if I understood the file, allows second player to pause the game.


I checked the screenshot and wanted to share a few points.
The batter's name "YASHIKI" is correct, so no problem there.

However, Japanese hiragana has 46 basic characters, and including voiced marks (like "ka" + dakuten = "ga") and semi-voiced marks (like "pa") brings the total to 71.
If you are aware of this, no problem, but I wanted to mention it for reference.

The idea of converting each hiragana character into romaji is excellent.
That said, implementing this on the Famicom may be quite difficult.

For example, with "ka" and "ga":

- G team 'Egawa' -> 'E' 'GA' 'WA'
- T team 'Kakefu' -> 'KA' 'KE' 'FU'

Japanese names can be converted this way.
However, some names cannot be split neatly character by character. A famous example:
- Dodgers 'Ohtani' -> 'Oh' 'Ta' 'Ni'

By the way, ProfessorW, can you see Japanese characters displayed correctly on your side?

=======================================================================================

スクリーンショットを確認しました。少し気になる点があったので共有します。
打者の名前「YASHIKI」は正しい表記ですので問題ありません。

ただ、日本語の平仮名は基本46文字ですが、濁点(「か」+「゛」で「が」など)や半濁点(「ぱ」など)を含めると71文字になります。
ご存知のうえで計画されていれば問題ありませんが、皆さんへの参考としてお知らせしておきます。

平仮名1文字をローマ字に変換するアイデアはとても良いと思います。
ただし、ファミコン上での実装はかなり難しいかもしれません。

例えば「か」「が」の場合:
・Gチーム「えか゛わ」→ 'E' 'GA' 'WA'
・Tチーム「かけふ」→ 'KA' 'KE' 'FU'

日本人の名前はこのように変換されます。
ただし1文字ずつ変換できない場合もあります。有名な例:
・ドジャース「おおたに」→ 'Oh' 'Ta' 'Ni'

ちなみに、ProfessorWさんの環境で日本語が正しく表示されていますか?
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: ProfessorW on 09/21/25, 12:12:35 PM
 ;D Didn't notice I used the full patched version for the screenshot, but it's fine, because I can explain how I handled romanizing the kanji.

Before explaining: My goal is to use rosters from NPB, MLB and LMB (Mexican League). Consider that when reading.

There are two steps:
1) Romanize the kanji in the tiles is the first step, but I found the issue of how to handle both "゛" and "゜" which are not unique letters, like the acute(´) or tilde(~) in western alphabets. Simple, I converted them to "ez" and "sn" (for "son"). Both are common endings of last names meaning "son of" in english and spanish, like "Henderson", "Tyson", "Perez" or "Hernández", and not used in japanese. But only using that would leave out many japanese names, and that goes against the goal.

2) So, when realizing that "゛" and "゜" were used always alongside other letter, using TWO spots of the name, why not changing the reference in the table to use other TWO letters? Let's use Egawa as example, and it's easier to check since it's the first pitcher of the first team.
He appears displayed like this "えか゛わ" which in the rom appears as "2B 2D 56 53" (see the screenshot as reference for the table) so, when translated I had to modify the name to "2B 10 28 53". This change in a non-translated, or original, rom it would display as "えGあわ" in the game. I know, in japanese it would not make sense, but it does when translated to western audiences.

BTW, if not changed the bytes of the name "Egawa" in the translated rom, it would display as "ekaeza".  ;D

In the first post I uploaded the IPS to translate the original rom, including the names modified.

I hope the explanation is not confusing.

Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: ProfessorW on 09/21/25, 12:19:50 PM
I'm including here the table used in names of the translated rom. If there is other standarized way of displaying romanized japanese characters, please let me know.
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: Beastmode on 09/21/25, 10:03:28 PM
Quote from: Gantry on 09/19/25, 01:19:46 PMI'm pretty sure I wrote/modified the code for the second player pause in US RBI, but I don't remember any details. I doubt I have any files on it, unless I made a forum post with the specifics.

Here is the og post on it I believe https://forums.dee-nee.com/index.php?topic=2764.msg33993#msg33993
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: Beastmode on 09/21/25, 10:05:40 PM
Quote from: ProfessorW on 09/18/25, 12:35:46 PMThis is the layout of the ROM (included in the zip, alongside patch for the WIP translation) according to my notes:

Player Data
Starts at $10
16 bytes per player
BOTH BATTER AND PITCHER
 Byte 0 - numPlayer
 Byte 1 to 4 - Name

BATTER
 Byte 5 - Bats (0 R, 1 L)
 Byte 6 - Batting Average - 150
 Byte 7 - Homeruns
 Byte 8 - Contact
 Byte 9 - 2nd byte of power
 Byte A - 1st byte of power (ie, if $19 = B8, and $1A = 02, it should be read as x2B8)
 Byte B - Speed 

PITCHER
 Byte 5 - Throws (values 0 to 3)
   00 - Right Over
   01 - Left Over
   02 - Right SideArm
   03 - Left SideArm
 Byte 6 - ERA * 10
 Byte 7 - Sink Speed
 Byte 8 - Curve Speed
 Byte 9 - Fastball
 Byte A - Curve Right
 Byte B - Curve Left
 Byte C - Sink Skill
 Byte D - Stamina

TEXT AT INTRO SCREEN
 Copyright: $2F51 (17 bytes)
 License: $2F65 (19 bytes)
 Teams: $30EA (24 bytes)

TEAM INFO
NAME: 1 byte, starts at $B058, 10 continuous bytes.

COLORS
Two Sections:
SECTION 1: Starts at $3239, 3 bytes per team
 Byte 1 - Cap
 Byte 2 - Skin
 Byte 3 - Uniform

SECTION 2: Starts at $9E76, 4 bytes per team
 Bytes 1-3: same as above
 Byte 4: Color of public when team is playing, look at screenshot in the post

*** TILES, not direct data.
LOGOS (Used in Scoreboard)
Even when there is one letter, it uses two sprites
Team G (1): $11818 (Letter 1), $11838 (Letter 2)
Team L (2): $11858 (Letter 1), $11878 (Letter 2)
Team R (3): $11898 (Letter 1), $118B8 (Letter 2)
Team C (4): $118D8 (Letter 1), $118F8 (Letter 2)
Team T (5): $11918 (Letter 1), $11938 (Letter 2)
Team F (6): $11958 (Letter 1), $11978 (Letter 2)
Team W (7): $11998 (Letter 1), $119B8 (Letter 2)
Team D (8): $119D8 (Letter 1), $119F8 (Letter 2)
Team S (9): $11828 (Letter 1), $11848 (Letter 2)
Team N (10): $11868 (Letter 1), $11888 (Letter 2)

Also in these places
Team G (1): $150B8
Team L (2): $150C8
Team R (3): $150F8
Team C (4): $15108
Team T (5): $15138
Team F (6): $15148
Team W (7): $15178
Team D (8): $15188
Team S (9): $151B8
Team N (10): $151C8

LOGOS in NEWSPAPER at end of match
Even when there is one letter, it uses two sprites
Team G (1): $10C10 (Letter 1), $10C30 (Letter 2)
Team L (2): $10C50 (Letter 1), $10C70 (Letter 2)
Team R (3): $10C90 (Letter 1), $10CB0 (Letter 2)
Team C (4): $10CD0 (Letter 1), $10CF0 (Letter 2)
Team T (5): $10D10 (Letter 1), $10D30 (Letter 2)
Team F (6): $10D50 (Letter 1), $10D70 (Letter 2)
Team W (7): $10D90 (Letter 1), $10DB0 (Letter 2)
Team D (8): $10DD0 (Letter 1), $10DF0 (Letter 2)
Team S (9): $10E10 (Letter 1), $10E30 (Letter 2)
Team N (10): $10E50 (Letter 1), $10E70 (Letter 2)

Hope it helps.





Ok so just to be sure, you want me to help you with extending the player names with the patch u put in the first post that you cant access but has instructions?
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: ProfessorW on 09/21/25, 10:17:31 PM
Quote from: Beastmode on 09/21/25, 10:05:40 PMOk so just to be sure, you want me to help you with extending the player names with the patch u put in the first post that you cant access but has instructions?

Well, probably the most clean solution would be a patch to extend the player names to 5 letters, independent from other patches. I just included in the first post my patch in case it's easier to debug with romanized characters.

Since NoroNoro told us about the use of the last two bytes of PITCHER data, I suggest the following approach:

store the 5th character in an empty or unused section in the rom (unfortunately I don't know how to properly identify it) of 160 continuous bytes, one per player, and calculated:

Offset + ((teamNumber * 16) + playerNumber)

Both teamNumber and playerNumber starts counting at 0.

But the final word and implementation is yours, I don't know how hard to achieve is this approach. If you find it easier to work with the clean rom, or with the translated (patch in the first post), or do you have another approach, no problem from me.

Many thanks.
Title: Re: Help with modifying ProYakyuu and ProYakyuu 87 games.
Post by: NoroNoro on 09/21/25, 11:41:04 PM
ProfessorW,
Thank you for your detailed explanation.
I'm amazed by the technique you used for the Japanese translation.
I immediately tried reproducing "Egawa vs. Kakefu" using the screenshot of the character table you provided, and it works perfectly in my environmentw :thumbsup:
It's also reassuring to see that Japanese characters are displaying correctly.
I'm also amazed at how well you understood the handling of voiced and semi-voiced marks.

Making player names 5 letters long might be a bit challenging for mew
New hacks might exist, so it could be fun to try looking for them.
I will help as much as I can.

By the way, to make it easier for Japanese users like me to find this thread, it might be better to give the thread a title like "Family Stadium" or "Famista." That way, it's easier to read via Google Translate.
==============================================================================

ProfessorWさん、
丁寧にご説明いただきありがとうございます。
日本語翻訳の技を見せていただいたことに驚いております。
早速、頂いた文字テーブルのスクショを使って「えがわvs.かけふ」を私の環境でも再現してみました。納得ですw :thumbsup:
日本語フォントも問題なく見えているようで安心しました。
また、濁点や半濁点の扱いについてもよく理解されていることに驚きました。

5文字化は少々ハードルが高いかもしれませんw
新しいハックがあるかもしれないので、探してみるのも面白いかもしれません。
できるかぎりお手伝いしますよ。

ちなみに、私のような日本人がここにたどり着きやすいように、スレッドタイトルは「Family Stadium」や「Famista」にすると、Google翻訳でも理解されやすくて良いかもしれませんね。