Family Basic V3 Manual Translation

Started by P, January 28, 2014, 02:22:48 am

Previous topic - Next topic

P

August 28, 2015, 02:06:08 am #15 Last Edit: September 05, 2015, 04:02:10 am by P
Color emphasis is just for some color effects without touching the palettes. Most games use it for making a red, green or blue tint on the screen or to flash it by quickly setting all three bits on and off.

The FILTER numbers just sets all possible combinations of the three emphasis bits. There's no logical order to them other than that they set the bits in order from red to blue:
0 = all three emphasis bits clear
1 = red emphasis bit set
2 = green emphasis bit set
3 = red and green emphasis bits set
4 = blue emphasis bit set
5 = red and blue emphasis bits set
6 = green and blue emphasis bits set
7 = all three emphasis bits set
In other words they are the decimal form of the three bits settings (000=0, 001=1, 010=2, 011=3 and so on).

Check the wiki I linked to, to see all the bits in &H2001 and what they do. Then just convert the hexadecimal numbers to binary (use a programming calculator, comes with modern OSes) to see why you poke those hexadecimal values to get the same effect.

Some games like Just Breed and Magician sets all three bits to dim the screen at all times. This makes them unplayable on RGB PPU systems (Sharp C-1, Famicom Titler, VS System and PlayChoice-10) since those PPUs treats the setting differently (screen becomes totally white if you set all three bits on those PPUs, and it becomes impossible to see anything). So if you want your game to be compatible with the Titler and C-1, don't set all three emphasis bits at the same time (in other words don't use FILTER 7).

Another possible incompatibility is that PAL and Dendy PPUs swaps the meaning of the red and green bits (so FILTER 1 makes the screen green instead of red and FILTER 5 makes the screen sky-blue instead of magenta and so on).

P

August 31, 2015, 04:20:16 am #16 Last Edit: August 31, 2015, 04:27:57 am by P
Thought I should finish the commands by the weekend. :)


--------------------------------------------------------------------------------
PAGE 109

Furthermore, when a game is called forth, it will automatically delete the
program currently in the memory so please be carefull.
Out of all of the built-in games in V3, only "Mario World" needs to have its
background transfered.


INSTR (in string)

[Working]
Requests the position of a character (string2) in string1 in a program.

[Abbreviation]
INS.

[Grammar]
INSTR ([P]string1,string2)
 P...From which line the search for string1 begins.
 Default is 1.

[Explanation]
First it will see whether string1 contains string2 or not. If it does, it will
start counting from the beginning of string1 to the position of string2 and use
that number as the return value.
--------------------------------------------------------------------------------
PAGE 110

The scope of the value is between 1~31, if the string can not be found it
returns 0. The counting goes from left to right.


LOADS (load es)

[Working]
A command that loads the BG GRAPHIC data from a casette tape.

[Grammar]
LOADS "file name"
Provided that filename: within 31 characters

[Explanation]
Basically the same as the command for loading programs (LOAD).
If a file name is specified, that name will be used to find the BG. Other BG
or programs on the tape will be skipped (SKIP will be displayed).
If the file name is omitted, it will load the first BG it finds on the
cassette tape.
To load a porgram and BG together, press:
[L][O][A][D]["]program name["][:][L][O][A]
--------------------------------------------------------------------------------
PAGE 111

[D][S]["]file name["][RETURN].
When loading, LOADING file name will be displayed, and when it is done it will
say OK.


ON ERROR GOTO

[Working]
Specifies the line to branch to, when an error happens.

[Abbreviation]
O.ERR.G.

[Grammar]
ON ERROR GOTO line number

[Explanation]
By executing this statement in the beginning of the program, one can branch to
the specified line (error handler routine) when an error happens.
When this routine that was branched to is done, one can use RESUME or END
commands. If RESUME is used, it will return to the specified line in the
previous main routine. Moreover, if END is used,

TN: The string on line 100 in the sample program "トケマセン" means
"can not be solved".
--------------------------------------------------------------------------------
PAGE 112

the program will terminate, and wait for command input.

TN: Look in the manual scan for the real diagram but here is roughly how it
looks like:

 Main
 routine

 ON ERROR
     GOTO

 Main
 routine
               (branch)
 Error occurs ------\
             ^      |
             |      v
             |    Error handler routine
             |      |            |
             |    RESUME        END
 Main        |      |             |
 routine <----------/             |
     |           return to        |
     |           main routine     |
     |                            v
     \-------------------------> Terminate


RENUM

[Working]
A command that replaces the program's line numbers.

[Abbreviation]
REN.

[Grammar]
RENUM [L],[m],[n]
 L...Starting number for the new line numbers.
--------------------------------------------------------------------------------
PAGE 113

 m...Original starting line number to change
 n...How many lines to increase each line number with.
 Default value L,m,n are all 10

[Explanation]
A command that sorts a program's line numbers. Not only does it sort the line
numbers, it also automatically updates any line number argument used in
branches by GOTO, GOSUB and such commands, to the corresponding new line
numbers that resulted from the sorting.
However, literals like ERL=1000 are not updated, so please be careful.

RESUME
[Working]
A command that resumes to the main routine from an error branch routine.

[Abbreviation]
RESU.

[Grammar]
RESUME [{line number}]
      [{NEXT       }]
 only RESUME ...Resume to the line where the
                error occured on.
 line number ...Resume to the specified
--------------------------------------------------------------------------------
PAGE 114

                line number
 NEXT        ...Resume to the line after the
                line number where the error occured on

[Explanation]
A command that resumes from an error handler routine that was branched to
using the ON ERROR GOTO statement.
※Refer to the ON ERROR GOTO sample program.


SAVES (save es)

[Working]
A command for saving BG GRAPHIC data to a cassette tape.

[Grammar]
SAVES "file name"
 file name must be within 31 characters.

[Explanation]
Basically the same as the command for saving programs (SAVE).
To save a program and BG together,
--------------------------------------------------------------------------------
PAGE 115

press:
[S][A][V][E]["]program name["][:][S][A][V][E][S]["]file name["][RETURN].
When saving, WRITING file name will be displayed, and when it is done it will
say OK.


SCREEN

[Working]
Sets which of the two BG screens are to be displayed and which to be active,
in any combination.

[Abbreviation]
SC.

[Grammar]
SCREEN display screen[,active screen]

 --------------------------------------------
 |command\ | display screen | active screen |
 |------------------------------------------|
 | SCREEN  |                |               |
 |  0,0    |       0        |       0       |
 |------------------------------------------|
 | SCREEN  |                |               |
 |  0,1    |       0        |       1       |
 |------------------------------------------|
 | SCREEN  |                |               |
 |  1,0    |       1        |       0       |
 |------------------------------------------|
 | SCREEN  |                |               |
 |  1,1    |       1        |       1       |
 |------------------------------------------|
 |[CTR]+[D]|                |               |
 |         |       0        |       0       |
 |------------------------------------------|
 ※These numbers represents BG-screen 0 and 1.

--------------------------------------------------------------------------------
PAGE 116

[Explanation]
There are two BG screens, and it is possible to set which of them is active
(writable) and which of them is being displayed.
If display screen and active screen are to be the same screen, the active
screen argument can be omitted.
 SCREEN 0,0 → SCREEN 0
※By holding the [CTR] key while pressing the [D] key, both display screen
 and active screen are set to BG-screen0.
※Active sreen is in reality the screen where the cursor can be moved around
 and make changes to the screen on.


TRON/TROFF (trace on / trace off)

[Working]
Activates and cancels trace mode.

[Grammar]
TRON...Trace execute mode
TROFF...Go back to normal mode

[Explanation]
By using TRON, it is possible to display the current line number as the
program runs.
--------------------------------------------------------------------------------
PAGE 117

A TRON statement can be used both in direct mode and in program mode.
If TROFF is used, the TRON command is terminated and it returns to the original
mode.

TN: Japanese in the sample program reads:
"**The result of the executation follows**


VCT (vector)

[Working]
Reads the movement direction of animated character used by DEF MOVE.

[Abbreviation]
VC.

[Grammar]
VCT(n)
 n...sprite number 0~7
 VCT (n) value     0~8

TN: A diagram here. In the middle of the diagram it says: "direction"


[Explanation]
If the animated character is moving, this command returns the direction
number.
--------------------------------------------------------------------------------
PAGE 118

The VCT(n) value is the same as the value in the DEF SPRITE direction
parameter. However, if the animated character stops, the undefined value is 0.

※Refer to the CRASH sample program.



--------------------------------------------------------------------------------


I revised the AUTO command that I had translated recently (I had forgotten to translate a small text in the sample program).
Now hopefully everything is translated in the Command Comprehension chapter.
I updated the attachment in the first post to include all changes. I also changed its formatting so it's easier to read now.

cpc6128


azaza1

Hello!
Where i can find V3 translated english pdf file?

P

There is none that I know of. The only English translation is the one in the text file attached to the first post. When it's complete maybe someone could help me and make an English PDF.

Quote from: cpc6128 on April 05, 2016, 03:35:39 pm
tack så mycket  :)
Thank you ;)

You are welcome! :)

micahcowan

Quote---------9---------
It can be used to display the name of a command on a line. TN: I don't get this last sentence. What it does is that it can search for either a string or a string variable name. Either way it will display both as well as the line number it was found on.
「○○という命令を使っている行をリストアップする」といった使い方ができます。


Here's my go (including the final sentence):

FIND is a command that will search within the program listing for the specified string, and cause the relevant line to be displayed.
You can use it in situations where you may have said to yourself, "Gee, I'd like to list up the line(s) where the XX command is being used"

UglyJoe


P

Thank you Micahcowan for the translation input. It makes sense and I have updated the translation with your help. Just note that the latest version of the translation is in the attached TXT file and not in the post.

And thank you KScottDB for volunteering in the scanlation work. There are a lot of things I'm not very happy with, so this triggered me to look over the translation for the first time in 5 years and do a little update. There are probably lots of smaller errors though, including translation errors, since I didn't look through the whole thing.


Update:
The first update in 5 years! Fixed errors includes grammar and spelling errors, translation errors and things that I simply misunderstood since I started this translation before I understood how everything in V3 worked. I'm attaching the updated translation in the first post as usual.

-N2

Quote from: P on June 19, 2020, 03:53:19 amThank you Micahcowan for the translation input. It makes sense and I have updated the translation with your help. Just note that the latest version of the translation is in the attached TXT file and not in the post.

And thank you KScottDB for volunteering in the scanlation work. There are a lot of things I'm not very happy with, so this triggered me to look over the translation for the first time in 5 years and do a little update. There are probably lots of smaller errors though, including translation errors, since I didn't look through the whole thing.


Update:
The first update in 5 years! Fixed errors includes grammar and spelling errors, translation errors and things that I simply misunderstood since I started this translation before I understood how everything in V3 worked. I'm attaching the updated translation in the first post as usual.

Wow this is really great!

now I must ask is there a way to patch the ROMs for English?

UglyJoe

Quote from: -N2 on July 06, 2020, 12:34:57 amnow I must ask is there a way to patch the ROMs for English?

There's not much to do for a translation patch. The parts of V2 that are not actually BASIC could be translated, but they're not really worth your time, IMO.  V3 just drops you into BASIC mode and most (all?) of the menus that you encounter are in English already.

-N2

Quote from: UglyJoe on July 06, 2020, 08:05:14 pm
Quote from: -N2 on July 06, 2020, 12:34:57 amnow I must ask is there a way to patch the ROMs for English?

There's not much to do for a translation patch. The parts of V2 that are not actually BASIC could be translated, but they're not really worth your time, IMO.  V3 just drops you into BASIC mode and most (all?) of the menus that you encounter are in English already.

I still see it as worthwhile for my Cousins & Friends children.

P

Literary the only things not in English is the screen that comes up when booting without a keyboard connected, and some text strings in the included sample games. The sample game strings could be translated by the user, by modifying the program listing and saving the modified game to a tape.
Ah there's also a message that comes up when you enter the command SYSTEM to quit.

Here they are:
Boot without keyboard connected:
キーボード ヲ セツゾク シテクダサイ
Please connect the keyboard


Quit (when entering the SYSTEM command):
バックアップ スイッチ ヲ ON ニ シテクダサイ
Please set the BACKUP switch to ON


Game 2:
カイゾウスル?
A=ソノママ B=スル
Modify?
A=keep as is, B=do


Game 3:
フタリ デ アソビマスカ(Y/N)
Play with two players? (Y/N)
That's all I could find. Tell me if there are any more strings and I'll translate them.

emerson

Here are some strings I found along with their memory locations while looking at the v3 rom in a hex editor. P translated most of these already but the text at $023d may be new. The text displayed on screen is a combination of these pieced together. I attempted to figure out the japanese characters but there are likely some mistakes as I have no experience with this.

Background tile values ($00 terminated):
 $022c: 20 4F 4E 00
 $0230: 66 2D AA 2D A5 20 8D 20 6D 71 A0 67 00
 $023d: A4 8C 9A 8C 20 8D 00
 $0244: A6 96 67 60 96 AD 20 6C 61 96 70 20 8D 00
 $0252: 20 4F 46 46 20 75 20 6B 72 67 A1 6A 61 00

My attempt at converting them to characters:
 $022c:  ON
 $0230: キーボード ヲ セツゾク
 $023d: デソグソ ヲ
 $0244: バックアップ スイッチ ヲ
 $0252:  OFF ニ シテクダサイ

Could someone please look at $023d and translate if possible? Thank you!

UglyJoe

It actually says デンゲン (dengen) and not デソグソ (desogeso).  The "n" and "so" katakana look very similar to each other, but from the location of the character 0x8c in the CHR table, it is definitely "n".

"Dengen" refers to "power" like the turning a TV on or off, as far as I can tell, but P would know better than me.

P

March 06, 2021, 02:08:49 pm #29 Last Edit: March 06, 2021, 03:02:04 pm by P
UglyJoe is correct. You also mistook the "ge" for a "gu" so it became "desoguso" instead of "dengen". The full sentence should probably be:

デンゲン ヲ OFF ニ シテクダサイ
Please turn the power OFF.

So it's the string at $023D then the one at $0252.

I had missed this earlier, and I forgot when this is displayed. A quick look showed that it's not displayed after entering SYSTEM.