Family BASIC Save/Load issues

Started by tamagon64, April 25, 2021, 07:36:37 am

Previous topic - Next topic

tamagon64

Hi! New to the community here. Long-time old nintendo hardware collector but only recently Famicom stuff - was really happy to find this site!

I got my hands on a Family BASIC set (which is AWESOME!) and going through the (not uncommon?) problems with SAVE/LOAD.

I can write a simple program and SAVE produces what sounds like the right noises on the "SAVE" output port (can hear it in headphones and save it to a PC via line-in), but have yet to have any luck with LOAD. Even with "LOAD?" I get nothing on-screen - just waits until I hit STOP.

Interested in any tips or tests I can do to figure out what the issue may be. So far I've tried:
  • changing audio lead
  • all manner of volume settings, to the point I worry if I've deafened it :-X
  • Trying the .wav files posted on this thread
  • 2 different PCs with all "audio enhancements" turned off

Same result, a quiet screen until I hit "STOP". :'(
Any ideas? The keyboard looks in good shape with no obvious blockages or corrosion of the LOAD port.

Thanks for any tips!

UglyJoe

April 25, 2021, 08:49:57 am #1 Last Edit: April 25, 2021, 09:17:43 am by UglyJoe
A few suggestions:

1. Can you post the WAV file you recorded from the keyboard?  I can check if my keyboard loads it.

2. I would try the "Program Data" files provided in this thread:

Family Basic programs from 任天堂のファミリーコンピュータファミリーベーシックがわか

Those were created via an emulator, so their sound quality is 100% pristine.  That would rule out any kind of noise issue.

3. Try different audio amplification methods, as the recording being too quiet has been my most common issue.  It sounds like you already tried this, though.  For me, I end up maxing out my PC's volume and also maxing out the volume on my headphone amplifier, although I can dial things back a bit if i amplify the recording in Audacity.  Also, you won't see any output on the screen until it loads the "name" of the recording, which can take around 10 seconds.

tamagon64

April 25, 2021, 10:54:33 am #2 Last Edit: April 25, 2021, 11:29:27 am by tamagon64 Reason: merge double-post
Ah, success!
So taking those WAV files from the thread I was getting some "?TP ERROR"s but it often got the name before erroring out if I had my volume output at 100%. On a hunch I used Audacity to normalise (without removing the DC offset) and set my PC output somewhere around 40% - it loaded. Hurrah!

Comparing my own .WAV with the one from the thread the noise on mine is surprisingly pronounced, so I'll play with my recording setup now I know loading is functional. If I learn anything significant I'll report back for the benefit of others who want to follow the same workflow.

Thanks UglyJoe for pointing at those other WAV sources and for giving me the confidence to really crank the volume!  :-[  :pow:

---

UPDATE: Tip for others using computers to record programs:
Once I successfully loaded the example, I ran a SAVE command to compare the waveforms, and it helped me diagnose an issue:
You cannot see attachments on this board.
(upper is the working file, lower is my save of the same data)

One of the problems was that my PC was seeing the input as a "Mic" and doing some dynamic tweaking on the levels, which will stop the famicom reading it properly. If your waveforms look like mine, make sure your computer is set as a "line in" source. That way you should get a nice, uniform block of sound.
(Mine still won't load due to other noise problems, but that's an unrelated and maybe local issue).

Hope that pays it forward for others using the SAVE/LOAD to computer workflow!

DarkProgrammer

May 21, 2024, 12:39:30 pm #3 Last Edit: May 21, 2024, 12:57:30 pm by DarkProgrammer
Hi everyone.  It looks like I'm late to this party, I recently bought a Famicom, with the Family BASIC cartridge & keyboard. I wasn't able to get an original Nintendo tape deck, so, I'm using a Radio Shack Realistic tape recorder.

So, when I saved a typed in program out to tape, It did write the program onto tape.  I can hear the proper tones when I play the tape & listen on headphones. Unfortunately I can't read the tape back into memory. I get the dreaded ?tp Tape Read Error.  However, I did find a file online that was named prog3.wav, that I was successfully able to read in, by connecting a lead from my PC's audio jack to the load port on my Famicom.  It wasn't perfect though as out of 5 tries 3 were successful, but, 2 errored out.


Does anyone have any further tips or instructions? 

Also, another user Uglyjoe mentioned in one of his posts that an emulator was available.  does anyone have the name of that emulator?

Thanks for any additional hints/tips/suggestion or tricks for Family Basic  that you can provide.
 

UglyJoe

Quote from: DarkProgrammer on May 21, 2024, 12:39:30 pmUnfortunately I can't read the tape back into memory. I get the dreaded ?tp Tape Read Error.

It can be quite finicky.  Try adjusting the volume when playing back your tape.  When I play back WAV files to my keyboard, it needs to be LOUD.

Quote from: DarkProgrammer on May 21, 2024, 12:39:30 pmAlso, another user Uglyjoe mentioned in one of his posts that an emulator was available.  does anyone have the name of that emulator?

I prefer Mesen, although VirtuaNES remains popular for some reason amongst those preserving Family Basic type-ins.

DarkProgrammer

Hey UJ.

Thanks for your response.  I really do appreciate the info!

Flinn Lute

Hello, i just bought an family basic keyboard, its driving me nuts to try to play the audio, the issue is that it sometimes works with my old windows xp laptop but it doesnt work with my pc.
can somone help me please?


UglyJoe

Can you provide some more details? What does your setup look like? Are you trying to record or play back (save or load)?  etc.

Flinn Lute

sorry for my late response, my setup looks like this: an hvc-001 famicom with family BASIC. The Family Basic is connected with mono audio cables to an old Windows XP laptop. then I try to transfer games from the laptop to the famicom. the problem is that I manage to play the .wav files via my old laptop (I cannot play the .wav files directly, only via amplification via audacity) but I cannot play them via my PC also when I transfer the audacity project files.

fcgamer

I spent all weekend trying to save some custom Excite Bike levels I did to a cassette tape and then successfully load them up at a later time. I am using a generic cassette player that has been hooked up to the Family Basic keyboard and then to a Famicom. I tried this on both a legitimate red / white Japanese Famicom as well as a Micro Genius IQ-501 clone.

I seemingly had no issue with saving the data. I could hear it save and then the screen would default out of the saving mode. When trying to load the tracks though, I was not successful at all. On my most successful attempts, I received a "Loading / N000" message (from my understanding the bottom part shouldn't be all zeroes), and I also received a read error. On my least successful attempts (about 98% of the time), the game just hung at the loading screen. One could hear the game data if removing the jack from the headphones, so I don't think it was recorded improperly. No idea why it isn't loading up though.

Thoughts? Ideas? Suggestions? Can anyone help me? I tried reloading at decreased volume increments, but that didn't lead to a success either 😞
Family Bits - Check Progress Below!

https://famicomfamilybits.wordpress.com

P

I guess Excitebike doesn't have a load-test function, that's too bad.

Do you have Family BASIC (or a flashcart)? I would try saving a small program with that first as it has the "LOAD?" command which tests if it can read the tape without actually loading anything to RAM. That way you can SAVE and LOAD? then if it doesn't work try saving again at another volume level and use LOAD? again. It can be really finicky, but once you find a method that works reliably, try that with Excitebike.

I think that all of Nintendo's games that supports the tape drive uses more or less the same code for saving/loading as Family BASIC does, so if that works Excitebike also probably works.

If your tape recorder has a speed-adjustment knob I guess you may want to center it to normal to get the right playback frequency.

UglyJoe

Edit: just realized this is a months-old post and you probably figured it out already, lol.

Quote from: fcgamer on May 18, 2025, 01:10:04 pmOn my most successful attempts, I received a "Loading / N000" message (from my understanding the bottom part shouldn't be all zeroes), and I also received a read error.

Should be "N101" yeah.  Though you can hack in whatever four characters you want ;D

I'm not sure what to add beyond the obvious here.  It's either not writing to tape correctly, not reading from tape correctly, or both.  The tape data in this case has a two-byte checksum, so it's probably failing once it loads all the data then checks the checksum.

I have a tool online for converting to/from Famicom emulator tape formats and WAV files:

https://hvc7.dev/fbtt/

You could try making a level in an emulator, writing to a virtual tape, use FBTT to convert it to a WAV, then record the WAV to a cassette.  Maybe the Famicom could read that?

If you're feeling curious, you could also capture some of your cassette recordings to WAV and run them though FBTT and see what it spits out -- the WAV reading is far from perfect, though, and if the Famicom can't make sense of the recording I doubt FBTT could either.

Quote from: P on May 18, 2025, 02:57:36 pmI think that all of Nintendo's games that supports the tape drive uses more or less the same code for saving/loading as Family BASIC does, so if that works Excitebike also probably works.

The modulation parts are the same between Family BASIC and Excitebike, yeah, so if a setup works for Family BASIC then I don't know why it wouldn't work with Excitebike, as well.