VOGONS


1000 Miglia

Topic actions

First post, by rcblanke

User metadata
Rank Oldbie
Rank
Oldbie

1000 Miglia (http://www.mobygames.com/game/dos/1000-miglia) seems to be broken in CVS (was working fine in 0.65). I can start the game, but not the actual racing (the screen remains blank).

Regards,
Ronald

Reply 1 of 10, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Seems to be hanging in a timer-loop.
out 43,e8
in al,42
and al,80
je loop

The out 43,e8 sets the counterstatus_set so they don't
receive the counter (which they seem to expect) but the
status reg. No idea how to fix it though.

Reply 3 of 10, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

> They may as well be checking for the counter output bit

Actually they do that, right.

> loop: is before out 43?

Yes, just that tight loop.

The timer mode is zero, but maybe the p->new_mode
should be reset somewhere (game is on abandonia btw.)

Reply 4 of 10, by h-a-l-9000

User metadata
Rank DOSBox Author
Rank
DOSBox Author

This makes the game work but since undocmented behavior is "exploited" I'm not completely sure it is right. Maybe I'll check on real hardware.

Edit: removed bad patch.

Last edited by h-a-l-9000 on 2006-08-03, 11:03. Edited 1 time in total.

Reply 6 of 10, by h-a-l-9000

User metadata
Rank DOSBox Author
Rank
DOSBox Author

The problem is not the status readback but the timer is set to mode 0 without the timer value being written. My patch simulates it to be set to 0xffff in that case but it probably keeps the old value (which is the same as about 0xffff for that game).

1+1=10

Reply 7 of 10, by h-a-l-9000

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Never mind, I found the actual bug.
new_mode was only reset for timer 0, not for timer 2. The game doesn't use anything undocumented.

Attachments

  • Filename
    timer2.diff
    File size
    800 Bytes
    Downloads
    191 downloads
    File license
    Fair use/fair dealing exception

Reply 10 of 10, by h-a-l-9000

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Somebody could test the rocket science games again 😀

Something interesting: Preferrably games that have ports for different platforms seem to make more use of timers. Could it be that those platforms are equipped with more timers and programmers desperately looked for a way to replace those on the IBM PC platform when porting?

1+1=10