18

"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

5 Answers 5

20

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 definition of 'powerful'. The Famicom, aka NES, was a 1.8 MHz 6502 machine, so its processing power was superior to a C64 or VIC20. Its graphics system was also more capable than the C64 or similar machines.

Family BASIC, on the other hand was a specially developed, MS-alike dialect. It was somewhat based on the BASIC for the Sharp MZ80 and follow-up series, which was also provided by Hudson Soft, but was a separate development. It was a specialty GAME BASIC. Basically, it used only integers in variable-handling, improved performance considerably, much like the Integer BASIC that Steve Wozniak created for the Apple II out of the same reasoning.

And like the TI 99/4a Extended BASIC, it featured many special functions to utilize the hardware to a degree unknown in other BASIC implementations. Nearly all the features of the hardware could be accessed from BASIC, including sprites, music, and in V3, collision-detection. The only real restriction was the limited RAM size. 2 Kb for the original version and 4 Kb for Family BASIC V3. Due to the great capability integration, this was less limiting than it seems.

Maybe take a look at this Youtube video to get an idea of how capable Hudson Soft's GAME BASIC was. It shows several games written in Family BASIC. The first (Mario Jump) is an example taken from the Family BASIC manual.

So I'd say it was more powerful 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 limiting than using a fork?

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

2
  • 1
    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. Commented Nov 18, 2017 at 18:18
  • 3
    "This video isn't available anymore" just tried to watch recently Commented May 13 at 12:53
8

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).

13
  • 2
    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, ...". Commented Nov 15, 2017 at 19:00
  • 2
    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. Commented Nov 15, 2017 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). Commented Nov 15, 2017 at 21:40
  • 2
    @Tommy GAME BASIC got even instructions for Sprites and Sound, so it's more than just able to do game programming. Commented Nov 16, 2017 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. Commented Nov 16, 2017 at 16:51
2

Mendel Palace, GameFreak's first game, was written in family basic, so it is powerful enough to run a real-time puzzler. I read it in a book.

5
  • Do you have a link to this so as to help illustrate the capabilities the game demonstrated? Commented Jul 15, 2019 at 17:13
  • 1
    Here is a link to a video of it. Commented Jul 16, 2019 at 18:15
  • Impressive! I presume then that the BASIC made it easy enough to say "move this sprite this direction at this speed and animate it" and wouldn't have to be a furiously busy loop updating position and frames...? Commented Jul 17, 2019 at 16:56
  • 3
    This is incorrect; while Satoshi Tajiri did get started with Family Basic, the published game is written entirely in assembly and has nothing to do with Family Basic. Commented Jan 11, 2020 at 2:55
  • Mendel Palace is a 128k ROM, fully written in Assembler (as usual for commercial NES Roms). Satoshi Tajiri used to develop his understanding of the Famicoms capabilities, but not the game itself (see wikipedia, and gamedeveloper.com/business/… ) Commented May 15 at 7:52
2

Stumbled into this question while searching for games for Family Basic. While I have no idea what kind of power the systems of the time had, I can tell you this, the original manual for Family Basic V2 (specifically Game Basic) explicitly mentions that you can write directly to any memory address of the console using the POKE function and also directly call machine code subroutines with the CALL function, which I've been able to successfully leverage to write my own 6502 machine code subroutines while playing around in the emulator. The manual also describes the memory structure of the console.

If you want to test this, just type "CALL &8000" into Family Basic. &8000 is the starting address of the ROM, and after pressing Enter, you should find yourself staring at the starting screen of Family Basic. In V2, this would be the selection menu between BG GRAPHIC and BASIC, and V3 will entertain you by printing "BASIC HOT START" instead of the default welcome message.

1
  • You can also POKE into the PPU registers and mess up the display. Commented Dec 29, 2020 at 23:35
-2

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
  • 6
    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.) Commented Mar 10, 2018 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. Commented Mar 11, 2018 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. Commented Mar 12, 2018 at 13:12
  • Googling "sakurai trackball" gets you tons of results. pcmag.com/news/353345/… arstechnica.com/gaming/2017/04/… Commented May 9, 2018 at 22:52
  • that's an artical about a gameboy game, that has like nothing to do with Famicom Basic Commented May 15 at 7:56

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.