f



Ultima I--space travel

Has anyone here played Ultima I (the 1981 version from California 
Pacific, not the 1986 remake) and successfully finished the outer space 
section?  It does not appear that I can ever hit the enemy ships playing 
on AppleWin, no matter how slow the emulation, or how apparently direct 
the hit.  I've tried for a long time now.

The code is in BASIC on the desk, and I see there is a PEEK to memory 
location 7405 to see if it is FF, but as far as I can tell this memory 
is never POKEd.  Now, I can find a line in the assembly in the debug 
window where FF is written to that location, but similarly I cannot 
figure out where that is in the BASIC program.

Any enlightenment would be appreciated!

-Zac
0
zacwbond (6)
2/18/2007 2:21:40 PM
comp.sys.apple2 11066 articles. 3 followers. antoine.vignau (1077) is leader. Post Follow

11 Replies
1996 Views

Similar Articles

[PageSpeed] 36

I played that game years ago. I still have the original disk. I have no clue 
about your problem, but thanks for the memory.

-- 
MSauer
"Ophidian" <zacwbond@vt.edu> wrote in message 
news:er9net$449$1@solaris.cc.vt.edu...
> Has anyone here played Ultima I (the 1981 version from California Pacific, not 
> the 1986 remake) and successfully finished the outer space section?  It does 
> not appear that I can ever hit the enemy ships playing on AppleWin, no matter 
> how slow the emulation, or how apparently direct the hit.  I've tried for a 
> long time now.
>
> The code is in BASIC on the desk, and I see there is a PEEK to memory location 
> 7405 to see if it is FF, but as far as I can tell this memory is never POKEd. 
> Now, I can find a line in the assembly in the debug window where FF is written 
> to that location, but similarly I cannot figure out where that is in the BASIC 
> program.
>
> Any enlightenment would be appreciated!
>
> -Zac 


0
2/18/2007 2:50:55 PM
On Feb 18, 11:21 pm, Ophidian <zacwb...@vt.edu> wrote:
> Has anyone here played Ultima I (the 1981 version from California
> Pacific, not the 1986 remake) and successfully finished the outer space
> section?  It does not appear that I can ever hit the enemy ships playing
> on AppleWin, no matter how slow the emulation, or how apparently direct
> the hit.  I've tried for a long time now.
>
> The code is in BASIC on the desk, and I see there is a PEEK to memory
> location 7405 to see if it is FF, but as far as I can tell this memory
> is never POKEd.  Now, I can find a line in the assembly in the debug
> window where FF is written to that location, but similarly I cannot
> figure out where that is in the BASIC program.
>
> Any enlightenment would be appreciated!
>
> -Zac

This is a bug in Ultima. There is a patch available, but I wonder if
you could first try something simple ... assuming you are using the
latest AppleWin. Change the machine type to Apple II+ and see if the
problem is fixed. It should be.

Cheers,
Nick.

0
2/19/2007 3:18:26 AM
ysicklittlemonkey wrote:

> This is a bug in Ultima. There is a patch available, but I wonder if
> you could first try something simple ... assuming you are using the
> latest AppleWin. Change the machine type to Apple II+ and see if the
> problem is fixed. It should be.


Wow, I thought this was a hopeless query for certain.  Switching the 
system did not seem to work, and I haven't found a patch yet.  I've 
hacked around some other annoying behavior in the game.

I would have been surprised that switching the system would fix the 
problem, because the assembly I looked at didn't seem like it would work 
(it waits for values to become equal before the lasers can hit the ship, 
but they only seem to become equal at the edge of the screen).

And I thought the later Ultima games were buggy :-P

Thanks,
-Zac
0
zacwbond (6)
2/19/2007 10:07:59 AM
Hi Zac.

> Wow, I thought this was a hopeless query for certain.  Switching the
> system did not seem to work, and I haven't found a patch yet.  I've
> hacked around some other annoying behavior in the game.

Thanks for checking with "Apple II+" selected.
Was that with the latest AppleWin? (Version 1.13.1.)

> I would have been surprised that switching the system would fix the
> problem, because the assembly I looked at didn't seem like it would work
> (it waits for values to become equal before the lasers can hit the ship,
> but they only seem to become equal at the edge of the screen).

The "bug" is that the code uses an undocumented opcode. Sorry for
withholding the patch until now, but I *really* wanted you to try
AppleWin's undocumented opcode implementation (taken from VICE). ;-)
Maybe this needs closer inspection.

Anyway, you will find reference to the patch if you search c.s.a2 on
Google Groups for "ultima space bug". Or just click here:
http://groups.google.ca/group/comp.sys.apple2/msg/f54a2fd34a27b967

Cheers,
Nick.

0
2/19/2007 10:58:19 AM
"Ophidian" <zacwbond@vt.edu> wrote in message news:erbsvp$7vd$1@solaris.cc.vt.edu...
: ysicklittlemonkey wrote:
:
: > This is a bug in Ultima. There is a patch
: > available, but I wonder if you could first
: > try something simple ... assuming you are
: > using the latest AppleWin. Change the machine
: > type to Apple II+ and see if the problem is
: > fixed. It should be.
:
: Wow, I thought this was a hopeless query for
: certain.  Switching the system did not seem
: to work, and I haven't found a patch yet. I've
: hacked around some other annoying behavior in
: the game.

Simply switching the machine type isn't enough.
There is a II+ ROM that needs to be in place.
Did you change to that ROM??

William Garber
Email Address - willy46pa@garberstreet.com
Alt. Email - willy46pa@comcast.net
Web address - http://www.garberstreet.com



0
willy46pa2 (652)
2/19/2007 11:07:07 AM
On Feb 19, 6:07 am, "William Garber" <willy4...@garberstreet.com>
wrote:

> Simply switching the machine type isn't enough.
> There is a II+ ROM that needs to be in place.
> Did you change to that ROM??

Actually the ROMs isn't the problem either.  The problem is that the
section of code in question uses an undocumented opcde.  The original
game works with a 6502 but the opcode was changed with the 65c02 and
thus the bug.  I posted the fix that Nick mentioned 10 years ago.
Wow....time goes fast!

-- Mark

Diskmaker 8
http://www.gamebits.net/mark/DM8/

0
percivm (21)
2/19/2007 12:57:48 PM
On Feb 19, 9:57 pm, "Mark Percival" <perc...@gmail.com> wrote:
> Actually the ROMs isn't the problem either.  The problem is that the
> section of code in question uses an undocumented opcde.  The original
> game works with a 6502 but the opcode was changed with the 65c02 and
> thus the bug.  I posted the fix that Nick mentioned 10 years ago.
> Wow....time goes fast!

And that should work ... in the *next* release of AppleWin! Oops, I
didn't realise the undocumented opcode support wasn't in the wild yet.

Time does indeed fly. It's been nearly 12 years since I posted my
summary document of undocumented opcodes to this newsgroup. ;-)

Cheers,
Nick.

0
2/19/2007 3:33:29 PM
sicklittlemonkey wrote:

> The "bug" is that the code uses an undocumented opcode. Sorry for
> withholding the patch until now, but I *really* wanted you to try
> AppleWin's undocumented opcode implementation (taken from VICE). ;-)
> Maybe this needs closer inspection.

Ah, now I see--I thought it was two NOPs, as that's what Applewin 
displays in the debugger, although they did not match the opcode for 
NOP.  The NOP it displayed for 47 was colored red, though, perhaps 
suggesting AppleWin is aware that it's an undocumented opcode?

The patch did not seem to work--for whatever reason, the files is saved 
but without the new information.  I extracted the file and fixed it in 
Windows, and it works!

Thanks,

-Zac
0
zacwbond (6)
2/19/2007 9:41:19 PM
On Feb 20, 6:41 am, Ophidian <zacwb...@vt.edu> wrote:
> Ah, now I see--I thought it was two NOPs, as that's what Applewin
> displays in the debugger, although they did not match the opcode for
> NOP.  The NOP it displayed for 47 was colored red, though, perhaps
> suggesting AppleWin is aware that it's an undocumented opcode?

Yes, you're right. That version of AppleWin just shows NOPs. I didn't
realise the new AppleWin undocumented opcode support hadn't been
released yet.

> The patch did not seem to work--for whatever reason, the files is saved
> but without the new information.  I extracted the file and fixed it in
> Windows, and it works!

Glad you fixed it. It's great that others (Mark etc) documented this -
many such gems are still locked away in heads, or hard to find.

Cheers,
Nick.

0
2/20/2007 12:58:50 AM
sicklittlemonkey wrote:

>> The patch did not seem to work--for whatever reason, the files is saved
>> but without the new information.  I extracted the file and fixed it in
>> Windows, and it works!
> 
> Glad you fixed it. It's great that others (Mark etc) documented this -
> many such gems are still locked away in heads, or hard to find.

Perhaps you can answer this query as well:  After I become a Space Ace, 
and try to land back on the planet, I get a "TYPE 14 ERROR IN LINE 
1650",  which is the line where OUT MOV is run.  Evidently it thinks OUT 
MOV is too large...But it works just fine when I land on the planet 
prior to becoming a space ace :-/

I am going on an odyssey, playing through the whole Ultima series, and I 
never expected Ultima 1 would be this challenging, lol.

-Zac

0
zacwbond (6)
2/20/2007 4:58:26 AM
On Feb 20, 1:58 pm, Ophidian <zacwb...@vt.edu> wrote:
> Perhaps you can answer this query as well:  After I become a Space Ace,
> and try to land back on the planet, I get a "TYPE 14 ERROR IN LINE
> 1650",  which is the line where OUT MOV is run.  Evidently it thinks OUT
> MOV is too large...But it works just fine when I land on the planet
> prior to becoming a space ace :-/

Sorry, I didn't really play Ultima I, so no idea.
Hopefully others can help with this problem.

Cheers,
Nick.

0
2/20/2007 5:33:33 AM
Reply: