Jump to content

Photo

How to get Spelunker ATR to start?


19 replies to this topic

#1 TheNameOfTheGame OFFLINE  

TheNameOfTheGame

    Dragonstomper

  • 635 posts
  • Location:Almost Heaven, West Virginia

Posted Sun Sep 18, 2016 7:41 PM

I have a SIDE2 and a U1MB.

 

I try to start Spelunker ATR and 90% of the time it won't start.  I have no idea what causes it to start but sometimes it does.  I would welcome suggestions.

 

Thanks.



#2 Madi OFFLINE  

Madi

    Moonsweeper

  • 383 posts

Posted Mon Sep 19, 2016 10:21 AM

ATX image file
Source: Atari 8bit Preserved Software
Works with all configurations on Altirra 2.90 test 4. Basic-OFF
 
madi

Attached Files



#3 electrotrains OFFLINE  

electrotrains

    Moonsweeper

  • 296 posts
  • Location:Scotland

Posted Mon Sep 19, 2016 10:54 AM

I've had similar problems in the past:
http://atariage.com/...kbook-on-130xe/

#4 TheNameOfTheGame OFFLINE  

TheNameOfTheGame

    Dragonstomper

  • Topic Starter
  • 635 posts
  • Location:Almost Heaven, West Virginia

Posted Mon Sep 19, 2016 10:05 PM

 

ATX image file
Source: Atari 8bit Preserved Software
Works with all configurations on Altirra 2.90 test 4. Basic-OFF
 
madi

 

 

Thank you, but the ATX doesn't even show up on the Side2 Cart.



#5 TheNameOfTheGame OFFLINE  

TheNameOfTheGame

    Dragonstomper

  • Topic Starter
  • 635 posts
  • Location:Almost Heaven, West Virginia

Posted Mon Sep 19, 2016 10:08 PM

I've had similar problems in the past:
http://atariage.com/...kbook-on-130xe/

 

 I read the thread, but not sure how this can help running on the Side2 and U1MB? Any suggestions?



#6 Madi OFFLINE  

Madi

    Moonsweeper

  • 383 posts

Posted Tue Sep 20, 2016 3:45 AM

I don't have Side/Side2 devices.

AFAIK, .ATX images are not supported by side cartridges.

 

Try the attached ATR image. If it doesn't work, let me know, so I will fix one for you.

 

madi

Attached Files


Edited by Madi, Tue Sep 20, 2016 3:46 AM.


#7 rdea6 OFFLINE  

rdea6

    River Patroller

  • 2,723 posts
  • Location:Arizona USA

Posted Tue Sep 20, 2016 4:08 AM

 

 I read the thread, but not sure how this can help running on the Side2 and U1MB? Any suggestions?

I loaded this atr into the fat32 area of my CF card and it ran okay for me and My Atari 800XL.  Also loaded it with RespeQT on Drive one and it loaded and played ok.  Also I am including an xex file of this same disk made by Rybags that also runs and plays on my U1M and Side2 from fat32 and loaded with the xex loader supplied by RespeQT ..

 

Attached File  Spelunking(reg 320k memory).xex   93.3KB   30 downloads

 

Good Luck..



#8 Rybags ONLINE  

Rybags

    Quadrunner

  • 15,758 posts
  • Location:Australia

Posted Tue Sep 20, 2016 4:37 AM

From memory, Spelunker uses encryption on most of the disk and generates a key that's stored in the top half of zero page.

I think that in some circumstances if there's non-zero data there initially it can cause the game to fail.  Such circumstances can be with deferred booters such as would be used in Side.

 

It was a few years ago though so I'm just going on what I can recall.



#9 electrotrains OFFLINE  

electrotrains

    Moonsweeper

  • 296 posts
  • Location:Scotland

Posted Tue Sep 20, 2016 4:53 AM

 

 I read the thread, but not sure how this can help running on the Side2 and U1MB? Any suggestions?

 

Hi. My point was that I had an Atari with similar symptoms (Spelunker didn't work first time, but it did if I tried again after a brief power off). When I enquired on the forum, at least one other person reproduced the same thing on their machine.

 

However this was with an ATR conversion on an AtariMax cartridge, so its not exactly the same situation as yours.

 

On my machine, changing the base memory fixed the problem completely, but thats a painful solution, and I suspect the problem is really due to code relying on uninitialised RAM locations (i.e. either the cartridge loader, or the game itself).



#10 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,756 posts
  • Location:United Kingdom

Posted Tue Sep 20, 2016 5:32 AM

From memory, Spelunker uses encryption on most of the disk and generates a key that's stored in the top half of zero page.
I think that in some circumstances if there's non-zero data there initially it can cause the game to fail.  Such circumstances can be with deferred booters such as would be used in Side.


Spot on regarding the encryption and location, but even manually clearing out the two bytes which were non-zero prior ($8B and 8C) to the program filling the upper half of page zero doesn't result in a boot. It eventually crashes jumping through $A400, since the expected code isn't there. Quite a lot of other stuff's in the wrong place too, but back-tracing the load in the emulator hasn't yet revealed the cause. The boot process is identical to a normal boot, the only difference being that sector requests are handled by the PBI ROM. The state of RAM should be the same as usual, other than a few bytes in the $3x area which are supposed to be reserved anyway.

 

EDIT: loaded via SIO (using the U1MB HSIO), then jumped into the BIOS, started the loader, then launched the ATR on the SIDE cart. Worked. Cold booted and tried the same thing and it crashed. In any case, I've found it starts reliably (in Altirra, using the U1MB SIDE loader) if you hold Option down during the boot (regardless of the fact the PBI BIOS disables BASIC anyway).

 

Also works on real hardware if you hold down Option. ;)


Edited by flashjazzcat, Tue Sep 20, 2016 5:53 AM.


#11 Rybags ONLINE  

Rybags

    Quadrunner

  • 15,758 posts
  • Location:Australia

Posted Tue Sep 20, 2016 6:00 AM

Don't you need to hold Option regardless of loading method anyway?

 

Was that the entire problem or is it still occurring?



#12 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,756 posts
  • Location:United Kingdom

Posted Tue Sep 20, 2016 6:19 AM

You don't have to hold down option when booting from the SIO in the emulator if BASIC is off, and the PBI BIOS disables BASIC when reading the first boot sector if BASIC is "Disabled" in the loader. But holding down Option for the first time following a cold powerup appears to fix everything, and the effect lasts for consecutive reboots (of the game) until the next cold power-up. The game will occasionally boot from cold (actually the second boot: first time into the loader, second from the ATR), but as the OP said: only about 10 per cent of the time.


Edited by flashjazzcat, Tue Sep 20, 2016 6:40 AM.


#13 Rybags ONLINE  

Rybags

    Quadrunner

  • 15,758 posts
  • Location:Australia

Posted Tue Sep 20, 2016 6:27 AM

There's the Spelunker I did using AtrLoad - entire disk loads and is staged from Ram, requires 128K system:

 

http://atariage.com/...as-executables/

(scroll down for compressed version)



#14 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,756 posts
  • Location:United Kingdom

Posted Tue Sep 20, 2016 6:43 AM

Good: that one appears to work 100 per cent of the time, without Option.



#15 TheNameOfTheGame OFFLINE  

TheNameOfTheGame

    Dragonstomper

  • Topic Starter
  • 635 posts
  • Location:Almost Heaven, West Virginia

Posted Tue Sep 20, 2016 11:32 AM

Thanks guys!  Using the XEX one now and working!



#16 phaeron OFFLINE  

phaeron

    River Patroller

  • 2,561 posts
  • Location:USA

Posted Tue Sep 20, 2016 10:56 PM

The reason for the compatibility issue with the U1MB loader:

  176741:147: 24 | A=00 X=00 Y=03 ( V  Z ) | 29CA: AD 24 02          LDA VVBLKD
  176741:147: 30 | A=8A X=00 Y=03 (NV    ) | 29CD: 8D 22 02          STA VVBLKI
  176741:147: 35 | A=8A X=00 Y=03 (NV    ) | 29D0: AD 25 02          LDA VVBLKD+1
  176741:147: 40 | A=C2 X=00 Y=03 (NV    ) | 29D3: 8D 23 02          STA VVBLKI+1
  176741:147: 46 | A=C2 X=00 Y=03 (NV    ) | 29D6: AD 00 A4          LDA $A400
  176741:147: 51 | A=A7 X=00 Y=03 (NV    ) | 29D9: D0 0D             BNE $29E8
  NEXT         | A=A7 X=00 Y=03 (NV    ) | 29E8: AD FF 36          LDA $36FF

Spelunker tests whether the byte at $A400 is set before it loads more of the game. If it is $00, which it should be on a cold boot due to the OS memory clear, then the load continues; otherwise, the game jumps to $A400 and crashes. This appears to just be part of its warmstart detection code, not the copy protection mechanism. The reason this check fails with the U1MB loader is that the PBI BIOS is not clearing $A000-BFFF when it disables the BASIC ROM... and since that memory was hidden when the OS initialized, it retains DRAM power-up patterns.



#17 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,756 posts
  • Location:United Kingdom

Posted Wed Sep 21, 2016 1:13 AM

Thanks - I knew you'd figure it out. It never occurred to me to clear RAM under BASIC.

#18 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,756 posts
  • Location:United Kingdom

Posted Wed Sep 21, 2016 3:40 AM

Spelunker fix for U1MB/Incognito:

http://atariage.com/...50#entry3598681

#19 TheNameOfTheGame OFFLINE  

TheNameOfTheGame

    Dragonstomper

  • Topic Starter
  • 635 posts
  • Location:Almost Heaven, West Virginia

Posted Wed Sep 21, 2016 2:58 PM

Thanks all!  It worked first time now.



#20 Rybags ONLINE  

Rybags

    Quadrunner

  • 15,758 posts
  • Location:Australia

Posted Wed Sep 21, 2016 7:32 PM

Note of course the Xex won't retain new high scores.






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users