[stella] Supercharger autoloading (and random access)
Glenn Saunders
mos6507 at yahoo.com
Sun Oct 7 16:51:59 CDT 2007
In the past I used to reserve extremely technical
discussions such as this to Stellalist but
participation seems to have really dropped off here so
I'm assuming everyone's on AtariAge. At any rate,
since this is an update based on earlier work here,
I'm mirroring my post here. It will be good to get
this logged in the archives too.
Link to AA post:
http://www.atariage.com/forums/index.php?showtopic=114575
-----------
Normally multiload games are loaded sequentially so if
you had them on your PC it would look like this:
MINDMAST1.BIN
MINDMAST2.BIN
MINDMAST3.BIN
Then when you play a game, all you see is the PLAY
TAPE message. You have to know from context (the
current load) which file to load via Playbin or a CD
player (i.e. currentload+1). You have to do this
manually. New homebrews would be limited to sequential
multiloads because there is no way to visually
indicate which load to queue up unless you also wedged
in a manual pre-load display to tell the user. The CC1
displays the requested load ID visually which is an
improvement. CC2 autoloads from flash.
Some time ago, I postulated that it should be possible
to write Supercharger homebrews that the even the
original Supercharger (or CC1) could autoload, and do
random access loads to boot.
The plan was to bit-bang small messages through the
second controller port to a host PC. I found a program
called Tera Term that had a scripting language that
looked like it could handle it. I also built a dongle
and successfully got bytes written using a little
serial subroutine that someone graciously wrote on
Stellalist (Fred Quimby and others helped). But that's
where it ended up. However, I now got it working. I
think... I would still need a test program to know for
sure, but in theory this should work, and work well.
Basically it implements a poor-man's read-only
filesystem, only as much as required for multiload
games.
Here is the command structure:
Each command is a single character followed by a
CR/LF. Then you send the argument and terminate with
CR/LF.
"D" "L" "M" "T"
D[CR/LF][DIRECTORY STRING][CR/LF] = set current load
directory
L[CR/LF][LOADIDBYTE][CR/LF] = perform load
M[CR/LF][DIRECTORY STRING][CR/LF] = set game's master
directory
T[CR/LF][GAME TITLE][CR/LF] = set game's title (all
loads use this as a naming convention)
By default, if all you use is the [L]oad function, all
loads have to be in the format LOAD1.BIN, LOAD2.BIN,
LOAD3.BIN.
If you set the game title to LEPRECHAUN, then it
switches to LEPRECHAUN1.BIN, LEPRECHAUN2.BIN,
LEPRECHAUN3.BIN.
All these loads default to the master directory as
defined by the Tera Term script.
If you set the master folder, then they will switch to
that.
If you set the load directory, then that would be a
subdirectory underneath the master folder.
So if your game had one set of loads, you might
arrange all of them in a single master folder.
If your game had "level-packs" then you could arrange
them each in their own subfolder.
That way you can easily break out of the 256 level
limit.
So the prerequisites for using this system are
(microsoft windows):
Supercharger or Cuttle Cart
joystick serial dongle
TeraTerm
supercharger_autoload.ttl script
SendSCLoad.bat batchfile
makewav
playwav
____________________________________________________________________________________
Moody friends. Drama queens. Your life? Nope! - their life, your story. Play Sims Stories at Yahoo! Games.
http://sims.yahoo.com/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: supercharger_autoload.zip
Type: application/zip
Size: 55702 bytes
Desc: 2767524622-supercharger_autoload.zip
Url : http://www.atariage.com/pipermail/stella/attachments/20071007/71db8bd5/attachment.zip
More information about the Stella
mailing list