8

"Family BASIC or Famicom BASIC is the consumer product for programming Nintendo's Family Computer video game console of Japan." wikipedia

I can't seem to find much info about Family BASIC anywhere on the internet. So I have a 2 simple questions.

  1. Was Family BASIC powerful enough to create full programs or was it just made as a toy for people interested in programming?

  2. I know Assembly language was used exclusively to create games for the NES/Famicom. Would you have a lot more limitations with BASIC compared to Assembly.

    Ex: speed, graphics, sound, etc?

enter image description here

7

1. Was Family BASIC powerful enough to create full programs or was it just made as a toy for people interested in programming?

It depends on your defintion of 'powerfull'. The Famicom, aka NES, was a 1.8 MHz 6502 machine, thus it got processing power superiour to a C64 or VIC20. It's graphics system was also more capable than what a C64 or similar machines got.

Family BASIC on the other hand was a special developed, MS alike dialect. Somewhat based on the BASIC, also provided by Hudson Soft, for the Sharp MZ80 (and follow up) series, but a seperate development. As a speciality it got a GAME BASIC mode. Basicly it switched all variable handling to Integer to improve performance considerable. Much like the Integer BASIC Woz did out of the same reasoning for the Apple II.

And like the TI 99/4s Extended BASIC it featured many special functions to utilize the hardware to a dregree unknown in other implementations. Next to all features of the Hardware could be accessed from BASIC. The only real restriction was the limited RAM size. 2 KiB for the original version and 4 KiB for Family BASIC V3. Due the great integration this was less lmiting than it seams.

Maybe take a look at this youtube video to get an idea how able Hudson Softs GAME BASIC was. It shows several games writen in Family BASIC. The first (Mario Jump) is an example taken from the Family BASIC manual.

So I'd say more than (almost) any other 8 Bit BASIC machine (back then).


2. I know Assembly language was used exclusively to create games for the NES/Famicom. Would you have a lot more limitations with BASIC compared to Assembly.

Well, is eating noodles with chopsticks more limitating than using a fork?

As usual it depends. If you're in doubt about the underlaying principles, RetroComputing might not be the right place to ask. The question about a comparsion between BASIC and Assembler, even if it's a specific BASIC, is way to broad to be discussed here. Maybe try to ask this on more general, programming orientated, subsites of StackExchange.

  • In the youtube video you can see where the deficiencies are. Biggest is the slowness, which is visible when the games draw the playfield one tile at a time. But you can also see where the NES hardware can compensate for that. Sprites only require updating XY coordinates, so they're fast. And the scrolling top down shooter only needs to draw a single line of tiles every second or so to keep up, the rest happens via hardware scrolling. As long as you can minimize the need for background tile updates, it works reasonably well. – tylisirn Nov 18 '17 at 18:18
3

From the token list at atkinsoft, there were certainly enough keywords from BASIC to suggest that Family BASIC was Turing-complete, and thus could be used for "serious" programming.

(ref: Wikipedia:Nintendo Entertainment System) Since the CPU was a 6502, the same as used in e.g., early Apple and Commodore home computers, it is clear that the only limitation on "serious" programming would be available resources (such as RAM).

  • 1
    I think explaining the difference between Assembly and BASIC is more-or-less off-topic for Retrocomputing, and might be better asked in Super User (but I won't rule out it being declared off-topic there, too). Assembly languages are also generally Turing-complete, but the operations they specify are "more granular" - akin to the difference between "draw a square" and "draw a one-inch line, then turn 90 degrees clockwise, then draw a one-inch line, then turn 90 degrees clockwise, ...". – Jeff Zeitlin Nov 15 '17 at 19:00
  • 1
    Turing-complete, yes, but it's not clear if it's Tetris-complete (ie. has the I/O capabilities needed to run a game of Tetris). You also can't tell the speed at which it runs from looking at the keyword list. – Mark Nov 15 '17 at 21:04
  • 1
    I think Mark just means that it's unclear whether that BASIC was Tetris-complete, not the hardware: it has PEEK and POKE so likely you could hit any hardware you wanted, but how fast was the (I assume) interpreter? Personally I'd be amazed if it were too slow for Tetris, but I'll wager you couldn't write Super Mario in it (caveat: other than by subversion, which I count as jumps like putting the machine code into a REM or DATA and using CALL; I'm probably trying to contrast writing something in BASIC, the language, and writing it within BASIC, the environment). – Tommy Nov 15 '17 at 21:40
  • 1
    @Tommy GAME BASIC got even instructions for Sprites and Sound, so it's more than just able to do game programming. – Raffzahn Nov 16 '17 at 15:52
  • 2
    @Raffzahn I agree, based on the other answer it sounds like it had game programming as a primary purpose, which I'm mapping reductively to my home computer-oriented experience of the time as making it like an STOS or AMOS, rather than a Commodore BASIC. – Tommy Nov 16 '17 at 16:51
0

Kirby's dream land was made entirely in family basic on a twin famicom with a track ball.... does that answer your question?

edit: it wasn't family basic, but a very similar program.

  • 5
    I can't find any evidence that Kirby's Dream Land was implemented in Family Basic. Why do you think this? (You might be right; absence of evidence is not evidence of absence.) – wizzwizz4 Mar 10 '18 at 10:46
  • 1
    A source / reference, or if you could expand with your own personal knowledge of how it was made would really improve this answer. – mnem Mar 11 '18 at 5:39
  • I really doubt that because it was one of the more technically advanced games of the time for that system. I don't think basic is fast enough. – LateralTerminal Mar 12 '18 at 13:12
  • Googling "sakurai trackball" gets you tons of results. pcmag.com/news/353345/… arstechnica.com/gaming/2017/04/… – Eddy Hamz May 9 '18 at 22:52

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.