[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: More thoughts about Lode Runner & other multiload games...



On Friday, September 28, 2012 1:50:00 PM UTC-5, Steve Nickolas wrote:
> On Fri, 28 Sep 2012, Antoine Vignau wrote:
> 
> 
> 
> > The truth is out there, oops, just a click away...
> 
> > http://www.hackzapple.com/phpBB2/viewtopic.php?t=191
> 
> >
> 
> > LoGo
> 
> > Sept. 2012 :-)
> 
> >
> 
> 
> 
> Hm.  That confirms a couple things - confirms I can gut 0900-0EFF and 
> 
> B700-BFFF for more space if I need.
> 
> 
> 
> It also confirms the $6000 start address that I found by brute force. (In 
> 
> fact I start the program running at 6008, but note the proper start is 
> 
> 6000.)
> 
> 
> 
> And it confirms the high score table's address in RAM, which would be 
> 
> useful for locating the routines to hit that.  And that RWTS is used.
> 
> 
> 
> But as I'm not familiar with RWTS (anytime I try to understand it my head 
> 
> explodes) I haven't been able to find the RWTS calls.
> 
> 
> 
> It is possible one of the functions is located at 6359.
> 
> 
> 
> -uso.


OK, so in taking a quick peek at LoGo's version of LR, it looks like the high score table is on track $0C, sector $0F. And that this is stored in memory at $1F00, and is either read or written via the routine at $6359.  You can see where it's called with the A-reg set to either a #$01 (for reads) or #$02 (for writes) and then stores that operation code first, followed by setting up the track, sector, and buffer address (i.e. track $0C, sector $0F, buffer $1F00) as part of the IOB, before calling RWTS with the address of the IOB ($B7E8) loaded in A and Y regs.  This routine at $6359 is called from a few different places though, and I didn't explore them all.  It might be worth first confirming that this is the high score table you're after (track $0C, sector $0F).