Jump to content
IGNORED

Brøderbund Graphical Adventures - Single ATR Version


Wrathchild

Recommended Posts

Two new titles converted from their original 2 disk 2 side formats to a single ATR for playing on real hardware with SIO2xx type devices etc, or under emulation, without the hassle of swapping sides/images.

 

I initially attempted Mask Of The Sun and have to say the copy protection method was a little elaborate but with today's tools (Altirra debugger :thumbsup:) can be muscled through easily enough.

 

With that out of the way, identifying how the game's files were stored and accessed enabled me to hook in some alternative code to add base sector offsets to simulate access of the other disk sides.

 

One thing I haven't yet been able to remove is are the messages for 'Please insert disk...'. Therefore when playing the games, just press 'Return' when these are asked for.

 

When attempting the second adventure, Serpent's Star, it seems to me a better overall adventure experience than the first, however, whilst a good degree of the code is shared with MotS, when it came to the file access it didn't conform to the same rules and so I couldn't use the same technique and had to devise another approach (**).

 

Finally, I have tacked extra sectors onto the end of the single ATR images to hold one save state and redirected the save/load routines to use that area. Again, the messages of which disk to insert are given but can be be ignored by pressing 'Return'. Note that Serpent's Star additionally gives an option of saving to drive 1 or 2, i.e. just don't choose 2! At some point I intend getting around to the removal of the unnecessary disk/side message displaying.

 

[Edit] - I'm also tempted to also do the German versions from Ariola if there's interest

Enjoy,

Mark

 

 

** Briefly, the issue is that each side has its own directory and files are asked for by name. The loader scans the directory across a number of sectors and if this is not found then the correct disk is asked for. In Serpent's Star, there are times when a file is found in the directory but the system obtains an incorrect 'side' reference to and so if I generically use that to load the file's data then it gets the wrong data. This fix for this is to start with disk 1 (rather than current disk) and scan the directory, if the filename isn't found then move to the next side's directory until all four are checked. A potential issue with this is that the game actually uses same named files across different sides, e.g. TRAVEL. The assumption is that these are actually repeats (I'm yet to confirm that) and so it doesn't show the wrong sequence.

Serpent's Star, The (1983)(Broderbund Software)(US)(Combined)_V1.atr

Mask of the Sun, The (1982)(Broderbund Software)(US)(Combined)_V1.atr

Edited by Wrathchild
  • Like 13
Link to comment
Share on other sites

I can see this progressing until it ends up in a folder on a hard drive! Nice work.

You could substitute some words until you yank the disk notices..

so long as the notice is the same length..

Virtual Side Swap or something along those lines...

You should be able to replace the waitkey with read key and accept all presses as valid..... should fit?

Link to comment
Share on other sites

Actually my initial intent would have been to fit both on an 8Mbit AtariMax FlashCart with a save slot for each :)

 

The disk notices I'm hoping are simple JSR calls that can be bypassed. E.g. I had run a breakpoint to trap on the obtaining of the 'B' from the font and can then look at the stack trace from there. However there is a concern that sometimes this might be part of the content of an action response coded into the game data. So basically some more investigative work needed but I wasn't going to let that stop people enjoying it already before the V2 is ready :)

Link to comment
Share on other sites

Hi Mark, under emulation the old emulated drives without firmware boot it but it also works on real hardware via SIO2 (I have a usb 2 sio (old thing but works fine), I presume it relies on the relaxed settings of an emulated drive and there's no actual drive this bigger image could really be booted from..

 

ie there's no actual drive hardware it would work from?

 

Just wondered...There''s the folks who like to boot only from the real metal stuff :)

 

(me, I use whatever needs to get the job done :) )

 

Excuse the rather mixed style of message, just stopped my Citalopram depression meds after many years to clear my head as it were and its great so far but having the odd brain fart ;)

Edited by Mclaneinc
  • Like 1
Link to comment
Share on other sites

Correct Paul, there won't be floppies & stock drives that would handle an image like this.

 

ATR handling on SD-Card devices like the UNO use a pass-through method of accessing the file on the card and supporting writing back to the ATR image too. Can you give it a try on your AVG Cart?

Link to comment
Share on other sites

Huh,

XF551 Double sided double density 360K

two disk two sides, 90+90+90+90=360k

:)

 

hard drives and all sorts of storage.. also..

 

ducks hides, but keeps and eye out,

Doc

 

The disk/side alignment is kept simple by padding a disk side's length to $18000 bytes to keep the math simple, e.g. sector one offset of D1S1 = $000, D1S2 = $300, D2S1 = $600, D2S2 = $900 and then save game space @ $C00.

 

With regard to hard drives... most titles are not going to be using a DOS and reworking something to be a file based in that regard is usually a no-go as the memory required by the DOS is needed by the game.

 

That would leave using a reserved partition area the same sector size of the ATR and doing everything relative within that area. Then does the DSKINV to read write a sector need replacing with routines to perform the HDD sector access and does the game you ware working on have a convenient memory space for that to sit. Don't most hard-disk solutions provide mechanisms for mounting and booting ATR images, e.g. SIDE Loader?

 

Think I'll just stick to the single ATR versions as the SIO2xx and cartridges supporting SD cards are prevalent enough.

Link to comment
Share on other sites

Thanks Philsan,

 

I don't really see these two adventures as doing much different and so the result is a little disappointing.

During some activity the immediate VBI is redirected but these are below the cart area as is the one DLI.

 

The games are 48K and so don't use memory under the O/S so perhaps it depends on how the AVG cart provides the alternative 'Read/Write' sector routines.

 

Mark

Link to comment
Share on other sites

A subtle difference between the UNO and AVG cart appears to be that the AVG cart's replacement OS has Basic enabled on an XL/XE by default where the UNO car inverts the Option key use, which is pretty common these days. So when an ATR is chosen, an UNO Cart will boot it without Basic and an AVG Cart will boot it with Basic.

Therefore if, in Altirra, when simply enabled basic then ran the Serpent's Star ATR, it displays a "REQUIRES 48K OF RAM." message following a RAM check.
Whereas with Mask of the Sun, it boots until sector 368 and then hangs. If I hold down the Option key upon boot, then both load OK.

 

So can it be tested on the AVG Cart that booting with the Option key held down enables these to work?

It maybe the case that injecting some extra code to disable basic means it will work on either but perhaps a common convention should be adopted or provide an option in the cart's file selection menu?

  • Like 2
Link to comment
Share on other sites

Confusion my fault - I was looking at the Beyond Compare window the wrong way around, so it was that the UNO cart has basic enabled (without option held) and the newest AVG code has basic disabled by default.

 

However, glad that has highlighted that AVG cart owners on version 0013 or earlier would be having basic enabled by default. Hopefully that was the issue.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...