Roman Checkers doesn't work anymore!

A place to discuss everything Dragon related that doesn't fall into the other categories.
fridgemagnet
Posts: 89
Joined: Mon Nov 24, 2014 8:33 pm

Roman Checkers doesn't work anymore!

Post by fridgemagnet »

Here's a weird one. So I had the need to dig out the Dragon recently, some youngsters were interested in having a good so in the process I attempted to load & run Roman Checkers. The version I have was originally a CoCo cartridge (it was I think the first game we had when my family obtained their first computer, a CoCo 1. It was also the only computer game my mum would ever play....). It also ran on the Dragon and in later years, I transferred it to disk where it could be run on a D64. I've now migrated all the disks to .VDK images where I can access them via Drivewire, which is how I was loading it the other day. Roman Checkers is a board game and (for those who don't know it), you can get it into a stalemate situation. The computer detects this and then ends the game. Here's the thing, when I ran it up, every configuration I picked - 1 player, 2 player, computer vs. computer it immediately concluded that neither player could move and ended the game!

Subsequently I've downloaded the ROM image from the archive and got the same result. I've also run it on another D64, likewise the same. The only thing I can think off is that both D64s have patched Drivewire enabled ROMs & that is somehow causing this bizarre behaviour....
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Roman Checkers doesn't work anymore!

Post by pser1 »

Hello,
I have been testing a ROM converted by Rolo and it works well on XRoar.
I attach it there for maybe it could be of use
cheers
pere
Roman.zip
(4.78 KiB) Downloaded 313 times
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Roman Checkers doesn't work anymore!

Post by pser1 »

In case you want to load the ROM using drivewire, there are two possible ways:
- If using my DosPlus5.0 extended, issue the command LROM"ROMAN" and it should be loaded from the root
of the Drivewire server and executed as well
- You could use the 'dweeb' I had created before, it has the same name: LROM (hope it is the last version)
I include here the dweeb that should be put in the root of drivewire too then issue DLOAD"LROM""ROMName" (no need to put the .ROM extension)
As you can see here, you will need the special Dragon64 ROM modified by Tormod Volden to enable drivewire (modifies command DLOAD to work via Drivewire)
cheers
pere
LROM.ZIP
(525 Bytes) Downloaded 281 times
fridgemagnet
Posts: 89
Joined: Mon Nov 24, 2014 8:33 pm

Re: Roman Checkers doesn't work anymore!

Post by fridgemagnet »

Hi Pere,

As expected, running both the cartridge version I download from the archive and my original copy from disk work as expected on a vanilla XRoar machine. After all, both that and the game itself are unchanged from the earlier 80's.

On my D64, I was using firstly your VLOAD DWEEB (to load from disk) and then your LROM one for the native cartridge (although possibly not the latest versions, I'd need to go around that). Both exhibited the same "feature". As I said, I don't have an unmodified D64 to try it on, everything points to something in either the DWEEBS themselves or the ROM modification upsetting things in an odd way.

A potentially interesting thing to try is booting up XRoar with the modified DWLOAD ROM & possibly even the Becker port version, see how they behave.
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Roman Checkers doesn't work anymore!

Post by pser1 »

Hi,
I will make a few tests tomorrow ...
By the way, I think that Rolo had to make a few changes when converting the ROM from the CoCo cartridge to work on the Dragon,
I am not sure about that but could be joysticks related to avoid noise on our Dragons.
I will try to start the game from a VDK file so that it will work via Drivewire or in a CoCo-SDC or from floppies ...
cheers
pere
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Roman Checkers doesn't work anymore!

Post by pser1 »

I have tested on my D64 the command LROM"ROMAN" and has happened what you had explained ...
Now, just thinking out loud I will say that maybe the problem is that the LROM dweeb executes the game in MAP1, so all RAM
and maybe that game expects that everything is on ROM (?)
Tomorrow more ...
wiil tell you how it goes
cheers
pere
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Roman Checkers doesn't work anymore!

Post by pser1 »

Hello,
as I have the multi-ROM cartridge v1.5 made and sold by Roland Schweiger (aka Rolo), I have installed it in my Tano
and then selected bank 47 where he had put the modified version of "Roman Checkers".
I just can say that it autostarts flawlessly and I can play with keyboard as well as with the right joystick!
The Basic ROM on my Tano is the modified one by Tormod to allow for drivewire using DLOAD, so it doesn't seem
a problem related to dweebs or drivewire.
I suspect it could be due to the old 'protection' scheme used in some cartridges where the code writes to itself, so no harm
when it resides in ROM, but dangerous if copied into RAM.
I have unassembled the ROM with F9DASM but I have not seen the 'problem' by now.
I will have a peek at it later. I attach here the unassembled file for maybe someone would want to have a look at it.
cheers
pere
ROMAN.zip
(36.31 KiB) Downloaded 293 times
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Roman Checkers doesn't work anymore!

Post by pser1 »

Hi,
I have created an VDK with the ROMAN.ROM converted to BIN just adding a header to load it at $4000 and then
I have prepared a small ml program that copies basic to MAP1 and then moves ROMAN up to $c000 leaving the
machine in ALL RAM mode.
The game works flawlessly here. This means that XRoar, probably, is protecting the ROM area despite being in MAP1
so that the 'problem' doesn't arise and game is playable.
Now the only chance will be tracing-debugging it to find the place where the problem appears and the routine that prints the
message is called. But of course as this doesn't happen here, we will need to detect any write attempt to ROM area.
I hope it could be done with GDB
will keep in touch ...
For maybe anyone could find interesting the VDK I prepared, I am attaching it here zipped. Just issue: RUN"RUNROM" and after
the program reboots the machine type EXEC&HC000
cheers
pere
Attachments
ROMANCH.ZIP
(5.87 KiB) Downloaded 268 times
Last edited by pser1 on Fri Oct 18, 2019 2:31 pm, edited 1 time in total.
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Roman Checkers doesn't work anymore!

Post by pser1 »

Hello,
now I am surprised!
The VDK I have prepared allows me to play the game without problems on my Tano.
I start normally with my DosPlus5.0 extended an do MOUNT1,"ROMANCH"
Then simply RUN"RUNROM" and once the machine is rebooted I issue EXEC&HC000 and the game works perfectly!

The only diffference I can think about is that the very last procedure I have put in the
'switcher' is a bit of code that avoids the Basic from clearing the RAM on rebooting
and then it calls a cold reboot, which implies that no sign of DOS will remain in RAM
but the program will stay at $c000.
So most probably this is one of those games that need the typical Antidos or DosDetach
before starting it ...
cheers
pere
fridgemagnet
Posts: 89
Joined: Mon Nov 24, 2014 8:33 pm

Re: Roman Checkers doesn't work anymore!

Post by fridgemagnet »

Hi Pere,

So it appears the board lost my post I wrote yesterday to you (and you've moved on a little)...

I (attempted) to say I was skeptical that it was the MAP0/1 switch (for one thing, the game was made in 1981 and I'm not sure there were any 64K variants around then, or possibly even disk cartridges) because I'm 99% sure this worked on my original (ie. pre DWLOAD mod) D64. I could load it from disk, copy to upper RAM, switch over and all was fine. Unfortunately I can't verify this because as I mentioned I don't have an umodified D64 anymore. However I did manage to load it in the same manner using XRoar and it worked ok.

My hunch here is that this isn't a deliberate anti-hacking attempt, it's probably more just poor code in that it's not zeroised down RAM properly and/or is then reading something unexpected from RAM. Therefore just having a DWLOAD enabled ROM wouldn't necessarily trip it, actually invoking the command (or possibly one of the following on DWEEBs) will use some RAM as a matter of course (doesn't DWLOAD make use of some unused page 0 addresses?) & this data left in RAM is then tripping this bug.

I wasn't sure in your last post if you were saying you had disabled the RAM zeroise or included it. If the former, then this would of course have a similar effect in removing any trace of DWLOAD related data.
Post Reply