This thread will serve as a portal to other threads about Family BASIC on the form. It's a work in progress. If you have anything to add, just reply here and I'll get around to merging things into the first post.
Manual Translations:
Family Basic Manual - Translating what is left (http://www.famicomworld.com/forum/index.php?topic=8876.0)
Family Basic V3 Manual Translation (http://www.famicomworld.com/forum/index.php?topic=10276.0)
Documentation:
The (unofficial) Family BASIC reference manual *now with new revision!* (http://www.famicomworld.com/forum/index.php?topic=10018.0)
Sample Programs:
Family BASIC noise channel (http://www.famicomworld.com/forum/index.php?topic=12116.0)
Family BASIC palette change (http://www.famicomworld.com/forum/index.php?topic=12094.0)
Family Basic Prorgam - Matrix Effect (http://www.famicomworld.com/forum/index.php?topic=11027.0)
Controlling ROB with Family Basic (http://www.famicomworld.com/forum/index.php?topic=9691.0)
Family Basic programs from 任天堂のファミリーコンピュータファミリーベーシックがわか (http://www.famicomworld.com/forum/index.php?topic=8234.0)
Space Harrier Boss BGM in BASIC (http://www.famicomworld.com/forum/index.php?topic=1408.0)
Family Basic Tapes and Misc (https://www.famicomworld.com/forum/index.php?topic=15079.0)
Discussion:
Family BASIC (http://www.famicomworld.com/forum/index.php?topic=131.0)
Family BASIC VRC7 conversion released! (http://www.famicomworld.com/forum/index.php?topic=8888.0)
peeking and poking around family basic. (http://www.famicomworld.com/forum/index.php?topic=8539.0)
family basic token help (http://www.famicomworld.com/forum/index.php?topic=7714.0)
Game made with Family Basic and compile to ROM download here (http://www.famicomworld.com/forum/index.php?topic=9792.0)
data recorder tape images (http://www.famicomworld.com/forum/index.php?topic=7704.0)
Family BASIC scrolling backgrounds (http://www.famicomworld.com/forum/index.php?topic=12100.0)
External Links:
STTONES (https://messatu.wordpress.com/2013/02/24/sttones-%E4%B8%80%E8%88%AC%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E2%98%86%E3%81%A7%E3%81%99/)
Converts VirtuaNES FB save states to standalone NES roms
Makimura Manufucturing Family Basic Hacks (http://rdev.php.xdomain.jp/makimura/archive/family-basic)
Has hacked versions of FB that run with VRC7 and MMC5 with extra features
FAMILY BASIC ROOM (http://page.freett.com/familybasic/index.html)
Japanese site with some manuals and sample programs
ファミリーベーシックで遊ぼう! (http://imgur.com/a/CBnOi)
Scans of a Japanese book on Family Basic. Has sample programs in it and goofy illustrations. Can be downloaded here (http://famicomworld.com/wp-content/uploads/Lets_Play_with_Family_Basic.zip).
Something to add.
The basics of using the Noise Channel in Family BASIC: http://www.famicomworld.com/forum/index.php?topic=12116.0.
Added.
Subbed. Thank you for this thread. We are going to do a video on Fami Basic w/ data recorder soon.
Finally! Looking forward to it! :D
Yes, please do! There simply isn't enough information on Famicom BASIC in English online and your video would totally be a lot of people's first look at the Family BASIC stuff.
This thread is pure magic.
Awesome thread. I'm immersed myself in all things Famicom as of late, and these guides are gonna make me.take the plunge and buy a basic setup.
I'm going to have to read thru this thread more... I wanna give Family BASIC a try :D
just got my keyboard today, itching to use it! thank you SO MUCH!
the FAMILY BASIC ROOM site (http://page.freett.com/familybasic/familybasic_download.html) no longer exists.
Bummer. You can still get to it via archive.org, but the two program listings are gone. It does have the NesterJ versions, so I should be able to extract the program listings from those.
I've been prepared for this. Here you go: http://s000.tinyupload.com/?file_id=06340071153679569064.
The program listings are in JPG screenshots though.
Yes!
Thanks for this wonderful thread!!!
If we have Family Basic, and Family Basic V3, where is V2?
The regular version of Family BASIC is version 1.0, 2.0, 2.1, and 2.1A.
I've also seen 2.0A and the prototype version 0.0.
As for dumped ROMs I've only seen NS-HuBASIC version 0.0, 1.0, 2.0A, 2.1A and 3.0. But the letterless 2.0 and 2.1 versions might also exist on carts, I don't know.
As for NS-HuBASIC version differences, this is what we know:
V0.0
Earliest known version number.
Used in the Playbox BASIC prototype ROM.
The LOAD? command does not seem to work.
V1.0
Used in Playbox BASIC and Family BASIC launch version.
This version of Family BASIC has a RAM self-test that is accessed by holding the T-key while pressing RESET. Unknown if Playbox BASIC also has this (the prototype does not). Edit: Confirmed to work in the release version of Playbox BASIC as well.
If there are any differences in the actual NS-HuBASIC they are unknown.
V2.0A
Used in a newer revision of Family BASIC. Supposedly people who called Nintendo and complained could trade their V1.0 version for this one for free.
This newer version of Family BASIC has the RAM self-test replaced by a BASIC mode shortcut. Holding the T-key while pressing RESET now goes directly to BASIC mode. Edit: The RAM-test is also done and at this time and this supposedly destroys RAM by filling it with fives.
As for the actual NS-HuBASIC, the SCR$ command was added.
V2.1A
Used in the last known revision of Family BASIC.
Bug fixes. What kind of bug is unknown.
V3.0
Version used in Family BASIC V3 (a separate title) with lots of new functions and even sample games. As V3 is fully operated from BASIC mode it has some new commands to go into the BG editor and such, and the T+RESET shortcut is no longer needed.
Also while programs and BG data are generally cross-compatible between versions (unless a program relies on the memory mapping or new commands) the tape format seems to be incompatible between some versions. At least you can not load a regular Family BASIC tape on Playbox BASIC (I've only tried it on the prototype) or Family BASIC V3. You have to retype the program from the beginning.
It would be interesting to know more about the tape format and exactly what is different.
Edit: I've done some more extensive testing and discovered that the tape format is not different between versions. All versions seems to use the same format and can load any Family BASIC tape (executing it is a different story of course). I was probably just unlucky before and thought the format was different when it didn't work, but it's not.
Sounds like a call, but unfortunately i don't have time at moment.
IIRC 2.1A have small patch and that's all, but can not recall details.
Super interesting thread. Maybe some member of this forum has something coded into this and wants to share it?? I never seen some quality games coded into this device :mario:
Quote from: Sydsydsyd on March 24, 2019, 05:41:33 pm
Super interesting thread. Maybe some member of this forum has something coded into this and wants to share it?? I never seen some quality games coded into this device :mario:
It depends on your definition of "quality". I think a few of the games transcribed here (http://www.famicomworld.com/forum/index.php?topic=8234.0) are kinda fun (like Mario Shooter).
Back in like 2013 or so when I was really into Family BASIC V3 I made some finished programs. I have them saved on tapes, but I no longer have Family BASIC, or V3, or a Data Recorder
Here's what I made:
- Learn Katakana with BASIC! (a Japanese-English Hangman game with 3 different modes, different categories of vocabulary, and some nicely designed menus)
-PUNG (a version of pong that is colorful like the TV COLOR GAME 6)
-Orb of Destiny ( a breakout game with multi-colored blocks and the ball got increasingly faster)
I was making Mini Putt Challenge as well, but never finished it. This game was too ambitious for just 4k of memory, but I was very close to making it all fit.
I would totally post screenshots of the games if I had some :)
If you want to see examples of Family BASIC programs, search youtube for Nico Nico Douga Family BASIC compilations :)
Here's a thread I made to document Family Basic games.
https://www.famicomworld.com/forum/index.php?topic=14509.0
Hello everyone,
I recently got a copy of Family Basic. I have some starter questions, maybe somebody can help me.
1) Is there a translated manual of the "Computer" menu (enter name, BASIC, calculator, etc.). I think the available english translation starts after that.
2) What is the concept of the built in battery backup. How to use it, switch positions.
3) Is it possible to use a smartphone with a appropiate MP3 recorder app for saving/loading to "tape"? Has somebody already tried it?
Thank you in advance.
Best regards!
Quote from: saimen10 on March 08, 2020, 02:03:06 pm1) Is there a translated manual of the "Computer" menu (enter name, BASIC, calculator, etc.). I think the available english translation starts after that.
The .txt file attached to the first post here has a translation of the early manual pages.
https://www.famicomworld.com/forum/index.php?topic=8876.msg127809#msg127809 (https://www.famicomworld.com/forum/index.php?topic=8876.msg127809#msg127809)
Quote from: saimen10 on March 08, 2020, 02:03:06 pm2) What is the concept of the built in battery backup. How to use it, switch positions.
This is covered the txt file from #1 above. It's kind of wonky and I don't trust it, personally :P
Quote from: saimen10 on March 08, 2020, 02:03:06 pm3) Is it possible to use a smartphone with a appropiate MP3 recorder app for saving/loading to "tape"? Has somebody already tried it?
Yup, very possible. I would recommend using an app that can record/playback lossless audio (like wav or flac) instead of mp3, since the compression might cause issues. (Some people have had luck with mp3s, though).
Nice to meet you. :D
I have a Playbox BASIC v1.0 cartridge. :redcart:
The ROM dump was also successful. :star:
CHR-ROM seems to be the same between Playbox BASIC v1.0 and Family BASIC v1.0.
There were some differences between Playbox Basic v0.0, Playbox Basic v1.0 and Family BASIC v1.0, so I took a screenshot.
Family BASIC v1.0 vs Playbox BASIC v1.0
(https://i.imgur.com/rdtMewc.gif)
Playbox BASIC v0.0 vs Playbox BASIC v1.0
(https://i.imgur.com/WzdmRu1.gif)
QuoteV1.0
Used in Playbox BASIC and Family BASIC launch version.
This version of Family BASIC has a RAM self-test that is accessed by holding the T-key while pressing RESET. Unknown if Playbox BASIC also has this (the prototype does not).
If there are any differences in the actual NS-HuBASIC they are unknown.
RAM self-test is also available in Playbox BASIC v1.0.
Oh the final (known) missing piece! Thank you for preserving it and telling us of the differences that you know of. I look forward to see the ROM.
You don't happen to have the manual or anything else that came with it? From what I've seen it's very similar to the Family BASIC manual (using the same illustrations and all), but it got to have a few pages totally different, like the biorhythm board. The biorhythm board is even mentioned in the Family BASIC manual, probably by mistake from when they modified the Playbox BASIC manual for Family BASIC.
Unfortunately I don't have a manual.
Cartridge only.
Link to ROM in this forum
I know that it is not desirable to attach it.
Please forgive me.
Playbox BASIC (Japan) (v1.0).zip (https://www.mediafire.com/file/6bk7m34pjf53nu1/Playbox_BASIC_%28Japan%29_%28v1.0%29.zip/file)
Here's a useful page on the keyboard matrix and hardware interface.
https://wiki.nesdev.com/w/index.php/Family_BASIC_Keyboard
It's on my list of future projects to create a USB adapter for my Family Basic keyboard. Some day...
Does anyone know how to squelch the annoying background hum/noise that seems to be present in Game BASIC? I've muted the TV, but it makes for a little extra work.
Quote from: PALCOLOR on July 11, 2020, 08:10:37 pmUnfortunately I don't have a manual.
Cartridge only.
Link to ROM in this forum
I know that it is not desirable to attach it.
Please forgive me.
Playbox BASIC (Japan) (v1.0).zip (https://www.mediafire.com/file/6bk7m34pjf53nu1/Playbox_BASIC_%28Japan%29_%28v1.0%29.zip/file)
I have the manual for Family Basic v3
https://gamefaqs.gamespot.com/nes/938747-family-basic-v3/faqs/59317
Quote from: leadedsolder on May 09, 2021, 01:50:10 pmDoes anyone know how to squelch the annoying background hum/noise that seems to be present in Game BASIC? I've muted the TV, but it makes for a little extra work.
Try making an audio decoupling toroidal transformer
https://www.epanorama.net/documents/groundloop/audio_isolator_building.html
I have this guidebok from Famitsu, it says how to get to 256 levels in Super Mario Bros. Same trick as you can do with Tennis.
I don't know if you guys know about it.
(https://images.sello.io/products/acc/25310/87346976/0c0719fd7e8f3e6edfb2f3e2592f8e82.jpg)
(https://images.sello.io/products/acc/25310/87346976/1b8f7cf94987fb18c53a9b7b8c7c482b.jpg)
An article describing the same thing is on Famicom World's frontpage. But it is indeed relevant to this thread. The BASIC code is found in the article (https://famicomworld.com/workshop/articles/super-mario-bros-256-worlds/).
Masahiro Sakurai himself talks how important Family BASIC was to his career as a game creator, and does some light coding. (https://www.youtube.com/watch?v=89_FhHQ5n-g)
I may look like I'm egoistical with this but I think my game could be a nice addition to this thread, mainly because I released the source code.
https://vl2m-studio.itch.io/satin
I'm wondering why the official family basic v3 manual does not have any mention of two commands (or maybe functions): SPC and TAB. These keywords can be found when viewing a memory dump. Does anybody know what they do and how they are used?
In other BASIC dialects, SPC() is used with PRINT for printing a specified number of spaces and TAB() is for printing as many spaces is needed to reach a set tabulator position.
That syntax does not seem to work in Family BASIC V3 though, I'm guessing neither of them are implemented and Hudson just forgot to remove the tokens or they are just part of some leftover code.
MOVE is kind of dumbfounding me. I'm using Family BASIC 2.1a, and trying to do a space shooter.
I decided I would use SPRITE for the space ship, and MOVE for the shots from the space ship. Obviously, I only want to have one at a time, so I've got code kind of like this:
10 X = 100 : Y = 100 : F = 0
11 DEF MOVE(0) = SPRITE(12, 3, 2, 128, 0, 0) ' laser shot
... sprite initialization here ...
30 REM loop
31 SPRITE 0,X,Y
... input handling, moving X and Y about on STICK() ...
40 S = STRIG(0)
50 IF (S AND 8) <> 0 THEN GOSUB 1500
51 IF (S AND 8) = 0 THEN F = 0
60 GOTO 30
1500 REM fire button handling
1501 IF F = 1 THEN RETURN
1502 F = 1
1503 POSITION 0, X + 4, Y + 4 ' put shot in front of space ship
1504 MOVE 0 ' send the shot on its way
1510 RETURN
if I tap the fire button, and then wait for the MOVE to clock out 256 pixels of movement, then hit the fire button again, it consistently clocks out 256 pixels of movement each time.
However, if I tap the fire button multiple times (interrupting the MOVE and starting it over again) it seems like the "counter" doesn't reset from being POSITION'd. It will count out fewer than 256 pixels before stopping short.
If I tap the button just right, the shot will actually not even move!
I've tried ERA 0 and CUT 0 before POSITION but they don't seem to make a difference. Is there a better way to work around this bug than redefining DEF MOVE(0) = ... inside my fire button handler? That seems to work, but feels inelegant.
It would also be nice if I could make a MOVE go a little faster. 1 (which the manual says is the fastest speed) is very boring.
From reading the manual it seems to me that you need to use DEF MOVE each iteration in order to reset the distance counter. POSITION only changes the position and not the distance counter. CUT and ERA also doesn't seem to affect the distance counter.
I guess that if you find out where it's stored in RAM, you could POKE the distance counter to reset it manually.
The manual says that MOVE is quite limited in speed, so the only way to move faster is to move the sprites manually using DEF SPRITE and SPRITE commands, coding your own metasprites, but that requires a lot more code (and I'm not sure it's faster for larger metasprites). I think these are just the limitations of BASIC, it's interpreted in real time so speed is hurt compared to when programming in assembly.
The secret to coding your own metasprites is to only move the metasprite's "hotspot" (which can be anywhere in the metasprite but is usually defined to be in the middle of it) and have the sprites drawn each frame based on a relative distance from this hotspot.
Thanks, that's what I thought, unfortunately.
I'm going to need to do collision by hand anyway (since I'm not in V3) so I guess manually animating the position of a 1-frame sprite isn't that big of a deal either.