Jump to content
IGNORED

Alternate Reality : Dungeon image?


WIZZARD77

Recommended Posts

At one point in time, Monolith Software (dudes behind Blood, and Matrix Online) were supposed to be working on an AR game, but it just never got finished. They had some screens and a couple of the songs redone and released as mp3s.

 

From Wikipedia:

 

During the late 90s, Price intended to produce an MMORPG version of the game called Alternate Reality Online or ARO, and teamed with Monolith. The deal ended due to lack of funds to start serious development on the project. Monolith originally had funds, but needed the funds for existing games in the pipeline. Monolith tried to find an external publisher to fund the game, but the number of technical innovations, coupled with an unknown market for MMORPGs, made it difficult to find publishers willing to risk funding. The publication deal ended and the rights to the game were returned due to no funds. Monolith went on years later to create The Matrix Online.

  • Like 1
Link to comment
Share on other sites

I "copies" the dungeon with a freezer. So when main menu appeared I saved an ram dump and as far as I remember there was not an issue Later but too long ago.

 

Played the dungeon. But not sure if from original disks or from my images one.

 

I got both original disks glad I am ;).

 

Btw the devourer was a garbage collection?

  • Like 1
Link to comment
Share on other sites

I don't think the Devourer was a housekeeping function, supposedly you were at risk of it if you carried lots of diverse stuff around.

 

The necessity for another crack - not sure there is one. From what I've seen of playing my City in the day it was fine.

What I lacked was a cracked Dungeon but since emulation I've been able to play it fine as well but as said before I don't play the games due largely to the diskswapping annoyance.

 

Of much greater value I think would be a monolythic image of both such that you could play them on real HW with SIO2xx emulation off a single disk image. Or a flashcart emulating disk.

Then of course after that could come the obvious - a monolythic game that could also do the SIO turbo mode. That'd bring the game in a big way into the current century.

  • Like 1
Link to comment
Share on other sites

I vote for a VBXE upgrade while we're hacking at it. :P

 

My favorite memory of playing The Dungeon is that on the second level, there is a Dwarf Smithy that'll custom make you a weapon, and you can name it. For some reason we named ours 'Balls'. Then during battle it'd say things like "Your Balls have been flung from your grasp!"

 

It definitely would be cool to get a cart with memory bank switching at the least.

  • Haha 1
Link to comment
Share on other sites

I was looking at that the other day. I was also kind of wondering how hard it'd be to use a modern engine to recreate it. Like Legends of Grimrock or something similar.

 

Humble bundle currently has a bunch of books on using unreal engine, how insanely awesome would that be?

  • Like 1
Link to comment
Share on other sites

The problem with too much modernising is you can cross the line from semi-realtime classic turn-based RPG and become just another FPS.

As primitive as things like 90 degree only turns, fixed Y position, somewhat small action window and the like seem, it all adds up to give the overall game experience.

  • Like 1
Link to comment
Share on other sites

As primitive as things like 90 degree only turns, fixed Y position, somewhat small action window and the like seem, it all adds up to give the overall game experience.

 

We have Spectrum ports but did anyone ever do the ZX81's 3D Monster Maze :D

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

IMHO, the best set-up for playing the Dungeon is a real 128K+ computer and 4 disk drives, then there is no disk swapping except once and to save a character. But you don't need 4 real drives, I play with either 1 or 2 real drives and 2-3 SIO2PC virtual drives (APE). I use the original side 1 floppy disk to boot from a real drive one, and to save to a real floppy character disk. The rest of the drives can be real disks or virtual. I also use APE Warp+ OS for 3xspeed on all disks, real (requires drives with warp/ultraspeed upgrades of course)or virtual drives.

 

There is less frequent data loading with 128K to use, and with little wait with 3x load speeds, no disk swapping except once, The experience is fantastic.

  • Like 1
Link to comment
Share on other sites

Go 1 virtual drive, may as well go 4 I reckon.

 

How can Warp speed OS help? I'm pretty certain that custom SIO is used universally once the game has loaded to the point of playing it. Custom SIO = no speedup though of course SIO2xx devices usually give a bit of a boost thanks to much less latency.

 

Maybe it's asking a bit much for the game as a single disk image or working 100% off large cart - of almost equal value would be what could amount to a simple modification to use >128K Ram as cache. Even on a 320K machine that could eliminate the need for almost all disk I/O once the game's been going a while.

  • Like 1
Link to comment
Share on other sites

Because Warp plus OS is a warp speed OS, and not a warp/ultra speed DOS, all discs, even commercial games, will load at 3 times speed if you have any ultra speed enhanced disc drive or through virtual drives this includes alternate reality games which still use the rom OS, even if it uses it's own DOS routines built-into the software, will load at three times speed using Warp plus.

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

The AR games don't use the low level OS SIO routines though - once the game's in progress it uses it's own single speed routine.

The main reason games such as these as well as the Lucasfilm games and 7 Cities of Gold do that is to be able to play music or audio on the 2 spare channels.

 

You should find that if you start a game with Warp OS and a stock OS and just do "New character" that once past the stats screen the load speed will be the same.

  • Like 1
Link to comment
Share on other sites

The AR games don't use the low level OS SIO routines though - once the game's in progress it uses it's own single speed routine.

The main reason games such as these as well as the Lucasfilm games and 7 Cities of Gold do that is to be able to play music or audio on the 2 spare channels.

 

You should find that if you start a game with Warp OS and a stock OS and just do "New character" that once past the stats screen the load speed will be the same.

Yes, of course, you are right. I stand corrected on the Warp+ speed-up, I was misremembering other multi-disk games. In fact, I have to switch my Happy 1050 to unHappy 1050 mode just to run Alternate reality. But everything else makes the game much more enjoyable, with 4 drives and extended memory.

Link to comment
Share on other sites

I've been examining the disk loading in the Dungeon and feel quite positive now that the whole thing can be setup as a single ATR image.

Once past the intro and RAM detection, loading goes through a call to $2CAD (sometime via a vector at $1842). This is mostly a 'give me file id A'.

Those files are mapped in a table giving the disk/side/start sector. Therefore my hope is that I can hook in some code to bump up the start sector based on the disk/side.

This is straight-forward due to, as with the other titles I've done, combining the sides by padding each of them to a length of $18000 means you add 3 to the high byte for each side.

As AR:Dungeon has only disk 1, side 1 and not a side 2, I can use that gap as the character save disk and then that is followed by 2:1, 2:2, 3:1 and 3:2.

The complications are the encoding and at this point it should be possible to leave that alone. The file loader checks that the requested file is present by loading the first sector.

If the first 4 bytes do not match that of the values obtained from the map table then it'll ask the user to "insert disk X side Y".

Therefore this would still work as I do not alter the values copied from the table as the high sector bumping is instead done when this is copied for the SIO call.

As a freebie then, the system should never ask for the 'insert disk/side' as the correct header is always identified.

 

However it could be an advantage for me to make an ATR image where all the files are already decoded.

This would have the small disadvantage that the code the decrypts the data needs to be bypassed.

But it would make any other patching that may arise (e.g. runtime copy protection) easier as I can then just modify the ATR directly.

 

So still a fair amount to-do but light at the end of the tunnel.

  • Like 8
  • Thanks 1
Link to comment
Share on other sites

I've been examining the disk loading in the Dungeon and feel quite positive now that the whole thing can be setup as a single ATR image.

 

It would be fantastic if this ATR would run from the UnoCart! Running the Dungeon from a cartridge (with saves) would be great.

 

It already gets quite far (i.e. past the intro) when loading the first disk.

 

Robin

Link to comment
Share on other sites

Headway made into the decrypting. I took Jim Norris' "City Viewer" app and expanded the dungeon file extraction to loop through everything and dump that back into a combined atr. :)

Care had to be taken though as the first disk has some parts already done as part of the cracking so those have to be left as-is.

So last night I've started to debug this as it should load the char menu after detecting the RAM size but instead asks for disk 1 / side 1 to be inserted... which ain't right so hopefully is just an area I didn't need to decrypt as already done.

  • Like 3
Link to comment
Share on other sites

My reverse engineering stuff on it is long gone.

I attempted to crack the game using a straight sector copy - wrote a disassembler to work with 6502 code on the ST which allowed me to look at nice big dumps.

I do remember the memory size check and it only went 48, 64 or 128 and allowed you to override to a smaller size using the console keys at a specific time.

Long time ago, I think all that stuff happens sometime after the intro and possibly even after the stats selection.

  • Like 3
Link to comment
Share on other sites

Cool, I do clearly remember it using 128kb of memory on the 130XE when I first picked one up. Just about the only game at the time I think that did. But it's also interesting to note that it wouldn't use any higher. I'd ask if it were possible to patch it to use 1mb, but I guess that wouldn't matter much if we could fit it on a single ATR/Cartridge since load times probably would be that long anyhow.

 

This is awesome.

Link to comment
Share on other sites

Getting there slowly.

 

The loading of a file works as follows:

Read the 'key' sector to $100

Copies 16 bytes from $100 to $180.

Check that the first 4 bytes match as expected.

If they don't match the show the 'insert disk X, side Y' message and try again,

otherwise, if OK, the file is loaded from the following sectors until complete.

 

The 16 bytes at $180 are then copied back to $100, repeating up to $17F.

This becomes a pattern that is used in the decoding of the memory area for the loaded file.

After the decoding there seems to be a phase where some checksums are evaluated.

 

So in my new approach, I skip the decoding phase and call the checksum code only.

 

Somewhere between this and what should be 'get the next file' is currently where it goes wrong and the 'insert disk X, side Y' message is being shown in order to attempt to reload the same file again.

 

So I need to trace debug both the good and bad paths and then compare the output to see where and why they diverge.

From that I'll hopefully be able to patch it up and proceed.

If I get stumped then I'll give a shout on on this thread for help :)

  • Like 8
  • Thanks 1
Link to comment
Share on other sites

 

Can't conceive how that hasn't been more public or I've not come across it in searches. What an undertaking!

 

Good news is that I found the cause of the checksum failure, I'd jumped over the decrypt stage but some values were set at that start of that which were used in the checksum and so I had to include those.

 

So my disk image can now load the initial dungeon from disk 2 / side 1 but there is a shoppe nearby and when I try and enter it it asks for disk 3 side 2 and so I think I know why and will muscle through that.

 

Currently this works by using Altirra's debug mode to path a small number of bytes around the time of the memory check.

Therefore my main issue is going to be who to hook the code to copied that values to the appropriate places into the actual loaded parts.

Space seems quite utilised I should be able to can find an area (maybe one of 'same values' that can be reset when I'm done).

 

So inching closer on something that be used to play a 'new' character. Then I'll work on redirecting the character disk to disk 1 / side 2.

  • Like 7
Link to comment
Share on other sites

Yesterday I solved entering establishments but the next stumbling block is Encounters.
This loads in the code part OK but after that sectors settings for the subsequent loads, possibly monster data/graphics are direct (not from the table) and so are extra patches.

 

I might end up looking at incorporating the patches into the github project sources to produce a single atr.

  • Like 5
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...