WinUAE icon indicating copy to clipboard operation
WinUAE copied to clipboard

T2 - Color palette of title screen is screwed up

Open dirkwhoffmann opened this issue 4 years ago • 10 comments

T2 - The Arcade Game (1993)(Virgin)[cr FLT].adf

A500 8A: 🥰

IMG_0717 2

UAE: 😲

Bildschirmfoto 2020-09-18 um 19 21 36

vAmiga: 🙈

Bildschirmfoto 2020-09-18 um 19 19 52

Screen is standard 5 bitplanes lores:

Bildschirmfoto 2020-09-18 um 19 30 20

dirkwhoffmann avatar Sep 18 '20 17:09 dirkwhoffmann

Feels familiar, I think this can also happen on real world. Probably some crack issue, possibly depends on relative positioning between tracks or something else undefined that ADF can't handle. Original IPF works fine.

tonioni avatar Sep 18 '20 18:09 tonioni

or something else undefined that ADF can't handle

I used the same ADF on the real machine (booted from a Gotek drive). I hope the Fairlight people didn't integrate some kind of emulator check or something (this is really a pain with some cracker groups in the C64 world).

dirkwhoffmann avatar Sep 19 '20 10:09 dirkwhoffmann

It works if I slow down the emulated drive a bit. I think the loader is simply bad and assumes something that should not be assumed.

tonioni avatar Sep 19 '20 11:09 tonioni

It works if I slow down the emulated drive a bit

Interesting. So this one can be closed, I guess.

Same here, BTW:

Bildschirmfoto 2020-09-19 um 13 49 15

dirkwhoffmann avatar Sep 19 '20 11:09 dirkwhoffmann

I think it would be good idea to measure rotation speeds of different real drives and see what T2 does.

tonioni avatar Sep 19 '20 12:09 tonioni

I did some measurements in vAmiga with AmigaTestKit. In the standard implementation, I feed a new byte into the disk controller FIFO every 57th DMA cycle. This results in an index pulse every 203.7 ms which is too fast for T2. UAE generates a pulse every 204 ms:

Bildschirmfoto 2020-09-19 um 17 43 09 Bildschirmfoto 2020-09-19 um 17 45 54

If I feed in a new byte after 61 DMA cycles, T2 still fails. If I feed in a new byte after 62 DMA cycles, it works.

Summary: This is still too fast (61 DMA cycle delay):

Bildschirmfoto 2020-09-19 um 17 36 00

This one works (62 DMA cycle delay):

Bildschirmfoto 2020-09-19 um 17 38 14

dirkwhoffmann avatar Sep 19 '20 15:09 dirkwhoffmann

That can't be correct. Real drive rotation is 300rpm = 5 per second = 200ms index pulses and my real drive matches this perfectly (200.0ms, MTROn->RDY0 is 389.8ms). UAE also was supposed to have 200ms index pulses but it looks like my calculations are slightly off.

EDIT: T2 title is not corrupted if rotation rate is correct 300rpm (200ms index pulse) in UAE. I guess loader has a bug and it only works if rotation is fast enough to skip next sector or something similar.. It does something weird because it does very short disk DMA first.

tonioni avatar Sep 19 '20 19:09 tonioni

T2 title is not corrupted if rotation rate is correct 300rpm (200ms index pulse) in UAE

Strange. In my emulator, I need to speed up to 196.5 ms to make it work. If I let the drive rotate with 200.1 ms index pulses (I cannot have anything in-between in my emulator), it doesn't work.

dirkwhoffmann avatar Sep 19 '20 20:09 dirkwhoffmann

Just for reference: The Gotek drive "rotates" perfectly with 300rpm.

IMG_0720

dirkwhoffmann avatar Sep 24 '20 13:09 dirkwhoffmann

My real floppy drive also reports 300.0rpm.

It probably also depends on "geometry" of adf, for example sector alignment between tracks. Interesting question is: if you support raw adf format (like extended adf), does it work if you use xcopy or diskcopy to copy from normal adf to raw adf? ADF after all does not include sector alignment data.

tonioni avatar Oct 02 '20 19:10 tonioni