This page is a mirror of Tepples' nesdev forum mirror (URL TBD).
Last updated on Oct-18-2019 Download

Family BASIC Program to Cart?

Family BASIC Program to Cart?
by on (#110552)
What would it take to make a cart out of a Family BASIC program? It would seem to me that you'd need to take a snapshot of memory while the Family BASIC program is running and write a loader that dumps that memory state back into RAM. Would the Family BASIC ROM still be needed for that?
Re: Family BASIC Program to Cart?
by on (#110553)
Naively: you might just be able to use NROM-368 to make a cartridge that has one ROM instead of ROM and RAM. You'll still need to hack it to make it autostart, since you're probably going to play on machines without keyboards.
Re: Family BASIC Program to Cart?
by on (#110559)
That reminded me that I once came across a Japanese page with ROMs of games made with Family Basic. Here it is.
Seems that the ROMs are just mapper 0 (Nestopia reports that they are nonstandard with 8kb video RAM) and I don't really know how he did it. There are some programming tips on his page but seems that he doesn't have any info on how to make these games into ROMs (and thus, standalone carts).
Re: Family BASIC Program to Cart?
by on (#110564)
I took a brief look: They all require 4 KB of RAM, mapped in the standard place. It looks like he replaced most of the top 0x3000 bytes of the v3.0 Family BASIC ROM with a little stub that copies 4KB to RAM and automatically starts execution. If you disable RAM (by, say, using a NES2.0 header), you get an error from the Family BASIC internals.

This does make a really easy test for me, however: I can use his game to construct an NROM-368 image and see if the game will error when it can't write to RAM: and the answer is yes, it needs writeable RAM. More extensive modifications would be necessary to avoid that.
Re: Family BASIC Program to Cart?
by on (#110568)
slobu wrote:
It would seem to me that you'd need to take a snapshot of memory while the Family BASIC program is running and write a loader that dumps that memory state back into RAM.

I just have a thought on this. As Family Basic saves codes to tapes, one easy way (i.e. no "custom" tool needed) is to just save a recording of the tape data to a wave file. As pretty much most modern emulators that support Family Basic could load tape recording with *.tp extension, that include at least Nestopia, NesterJ and VirtuaNES I think, with the latter two extremely popular in Japan for some reasons. You may then load the recording with an emulator and dump the memory, or make a save state and crop the appropriate memory range to grab the game data.
Re: Family BASIC Program to Cart?
by on (#110573)
Thanks for taking another one of my off-the-wall ideas seriously fellas :)

I'm not sure if the wave file idea would work in the context of a real cart from Family BASIC RAM snapshot idea. Although something similar was done recently for the Mattel Aquarius here:
http://atariage.com/forums/topic/174191 ... try2729165

The difference (among other things) is that Aquarius .CAQ files are not waveforms. Even compressed .WAV files would be prohibitively expensive to store on ROM..
Re: Family BASIC Program to Cart?
by on (#110590)
A good place to start:
Take one of the images provided by Yosshin, take a 4KB save from a Family Basic v3 game, copy it into offsets 0x5810-0x680f (in memory: $D800-E7FF), and see if it works.
Once you have this working, adding PRG-RAM to an NROM game is easy enough: http://wiki.nesdev.com/w/index.php/PRG_RAM_circuit