Previous Thread
Next Thread
Print Thread
Page 1 of 2 1 2
Joined: Dec 2013
Posts: 19
M
Member
OP Offline
Member
M
Joined: Dec 2013
Posts: 19
I cannot figure out how to save and load .tpr files. Here's my process...
1. Create a simple program.
2. Type: Save"hello"
3. Select record from the menu bar
4. Hit enter
5. Once it says it was saved: select stop from the menu bar

Although I'm able to reload the program during the session, no .tpr file is created, and therefore, I cannot run the program after I shut down Nestopia. I also cannot figure out how to run existing .tpr files that I've found online, particularly from this website.
http://page.freett.com/familybasic/familybasic_download.html

What do I do?

Joined: Jul 2007
Posts: 4,625
A
Very Senior Member
Offline
Very Senior Member
A
Joined: Jul 2007
Posts: 4,625
So far I know support Nester the *.tpr, VirtuaNES the *.vtp and Nestopia the *.tp extension.

Nestopia + Family BASIC (J) (V3.0) as example

To save the .TP file type:

First go to Machine > External > Tape Recorder > File...
and type a new filename which will be selected.

File > Open...
and select the Family BASIC (J) (V3.0).nes file

If you have BASIC listing you can copy the content and paste the text (F12)

SAVE "filename" {don't press ENTER yet!}

Select Machine > External > Tape Recorder > Record

Now press ENTER!

When the flashing cursor reappears

Select Machine > External > Tape Recorder > Stop

***

To load the .TP file type:

First go to Machine > External > Tape Recorder > File...
and select the .TP file.

File > Open...
and select the Family BASIC (J) (V3.0).nes file

LOAD "filename" {don't press ENTER yet!}

Select > Machine > External > Tape Recorder> Play

Now press ENTER!

When the flashing cursor reappears your saved program should be restored

Type RUN

Joined: Jul 2007
Posts: 4,625
A
Very Senior Member
Offline
Very Senior Member
A
Joined: Jul 2007
Posts: 4,625
Originally Posted By Murveman
I also cannot figure out how to run existing .tpr files that I've found online, particularly from this website.
http://page.freett.com/familybasic/familybasic_download.html

What do I do?


I converted the 2 tape files (*.tpr to *.tp) to work with Nestopia.
https://www.sendspace.com/file/dsc5tf

First go to Machine > External > Tape Recorder > File...
and select SPARKHOUSE.tp or URBANCHAMP.tp

File > Open...
and select the Family BASIC (J) (V3.0).nes file

LOAD {don't press ENTER yet!}

Select > Machine > External > Tape Recorder> Play

Now press ENTER!

When the flashing cursor reappears your saved program should be restored

Type RUN

PS: If you use the LOAD command without the filename, the option "Use image file naming" should be disabled.

Joined: Dec 2013
Posts: 19
M
Member
OP Offline
Member
M
Joined: Dec 2013
Posts: 19
Thank you so much! Especially for converting those two files. Did you use a program to do that?

One more quick question; though I don't know if anyone can answer it...
In many BASIC programming languages there's a way to randomize numbers by generating a sequence through the system's internal clock (for example "RANDOMIZE TIMER" in qbasic or RND(0) on the C64). Is this possible in Family Basic, and if not, is there a decent alternative?

Last edited by Murveman; 05/07/15 10:16 PM.
Joined: Jul 2007
Posts: 4,625
A
Very Senior Member
Offline
Very Senior Member
A
Joined: Jul 2007
Posts: 4,625
I can not remember me in detail because I made the conversion some years ago.
It exist a modified version of Nester called "NNNesteR" (not "NNNesterJ") which support 3 different tape extensions to save the data recorder file.

http://fs2.directupload.net/images/150508/k8vsvzpf.png

The RND command exist for the Family Basic v3.0
Family Basic v3.0 Reference (PDF)
https://www.sendspace.com/file/kuoud6

Example:

Quote:
10 REM * RND *
20 PLAY "C3D3E3C3"
30 A$="CDEFGABR"
40 N=RND (8)
50 B$=MID$ (A$,N+1,1)
60 PRINT B$;
70 PLAY B$
80 GOTO 40

Joined: Jul 2007
Posts: 4,625
A
Very Senior Member
Offline
Very Senior Member
A
Joined: Jul 2007
Posts: 4,625
Another 2 emulators exist which support the tape recorder for the Famicom:
eFamilyBASIC
http://homepage3.nifty.com/takeda-toshiya/

and

vdmgr
http://www.geocities.jp/g_lsluk/

1.) NNNesteR - save the loaded *.tp/*.tpr tape file to *.vtp
2.) Convert the *.vtp to *.wav
http://rdev.php.xdomain.jp/makimura/archive/tools#
Example:
vtp2wavall.exe SPARKHOUSE.vtp
3.) SPARKHOUSE.wav was created



Different tape formats
https://www.sendspace.com/file/3oicj6

Joined: Mar 2001
Posts: 16,756
Likes: 29
R
Very Senior Member
Offline
Very Senior Member
R
Joined: Mar 2001
Posts: 16,756
Likes: 29
The NES/Famicom don't have an internal clock. This is one reason why games of that era were generally not very random smile

Joined: Dec 2013
Posts: 19
M
Member
OP Offline
Member
M
Joined: Dec 2013
Posts: 19
Anna: Thank you so much for your wealth of information. I'll definitely check out NNNesteR. The issue with RND (without a Randomize Timer function) is that the same set of randomized numbers will be generated each time, which makes for stale gameplay.

Belmont: That is such a pity. I've been racking my brain trying to think of a way to make random numbers, and all I can think of is utilizing user-input. In a game-setting that'd probably be taken from cursor/sprite position.

If any of you know of an alternative way, be it better or worse, I'd love to know.

Last edited by Murveman; 05/08/15 08:30 PM.
Joined: Mar 2001
Posts: 16,756
Likes: 29
R
Very Senior Member
Offline
Very Senior Member
R
Joined: Mar 2001
Posts: 16,756
Likes: 29
In games on that kind of hardware (I programmed a shipping commercial Super NES game which will remain unnamed) we seeded the randomness by how many frames it took the user the press a button after boot. On the PS1 (which also lacked a clock), we used user input timings plus CD load timings, since no two mechanisms read at the same speed.

Like I said, that's why games of that era weren't very random (and thus are especially amenable to speedruns and TASes).

Joined: Dec 2013
Posts: 19
M
Member
OP Offline
Member
M
Joined: Dec 2013
Posts: 19
That frames til user input is a great idea. I think that could be accomplished with a looping FOR...NEXT command.
Again, many thanks to both of you.

Page 1 of 2 1 2

Moderated by  Marty, R. Belmont 

Link Copied to Clipboard
Who's Online Now
0 members (), 25 guests, and 2 robots.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics8,943
Posts117,560
Members4,994
Most Online890
Jan 17th, 2020
Forum Host
These forums are hosted by www.retrogamesformac.com
Forum hosted by www.retrogamesformac.com