[hatari-devel] Some more demos that fail with 1.4

Nicolas Pomarède npomarede at corp.free.fr
Thu Mar 31 00:12:07 CEST 2011


Le 25/03/2011 22:17, Eero Tamminen a écrit :

Hello,

here're some reports on some of those demos

> * Pixel Twin's Mental Hangover actually crashes Hatari:
>     http://www.pouet.net/prod.php?which=11181
>
> Valgrind says:
> ==4016== Invalid write of size 1
> ==4016==    at 0x40264DC: memset (mc_replace_strmem.c:602)
> ==4016==    by 0x80D18DC: Video_InterruptHandler_HBL (video.c:1942)
> ==4016==    by 0x810CB30: m68k_go (newcpu.c:1758)
> ==4016==    by 0x80B3A33: M68000_Start (m68000.c:241)
> ==4016==    by 0x80B4823: main (main.c:773)
> ==4016==  Address 0x4981d00 is 0 bytes after a block of size 614,400 alloc'd
> ==4016==    at 0x4023F50: malloc (vg_replace_malloc.c:236)
> ==4016==    by 0x80C2E81: Screen_Init (screen.c:517)
> ==4016==    by 0x80B46C9: main (main.c:585)
>
> (when it gets 4 bytes past the screen buffer, Hatari crashes)

Tough one, I spent some time figuring what was wrong. In fact, due to a 
very buggy loader in the boot sector, this demo can sometime consider it 
needs to load $c18f sectors with xbios(8) ! Since memory location for 
the sector is incremented by 512 bytes on each sector, you end up 
filling the whole ram (as well as the IO space !) with garbage read from 
wrong sectors.

The problem is that at the start of the boot sector D1=3e7bxxxx (number 
of sectors to read) and the loader doesn't clear the upper 16 bits...
Now, since it works under Steem with the same TOS, I needed to 
understand why the upper 16 bits were 0 on a real STE.
In fact, those bits in D1 are the result of initializing the TOS 
date/time by reading the real time clock at $fffc21-3f.

Since normal STF/STE didn't have an RTC, this loader worked (more or 
less by luck). When there's no RTC, D1=0 at the start of the boot.

Note that it depends on the TOS : with 1.04 or 1.62, D1!=0 but with 2.06 
the loader starts.

But after that, when all sectors are loaded, the demo check there's no 
cardridge connected to the ST (at $fa0000). Since HD emulation is at the 
same space under Hatari, it's considered as an ripping cardridge and the 
demo wipes the whole RAM with the blitter -> bus errors again.

So, to run this demo, you need to disable RTC and HD emulation.

I added a note for this in compatibility.html.


> * Songs of the Unexpected gets double bus error after playing the first song
>     in the main demo for a while:
> 	http://www.pouet.net/prod.php?which=22398

I can reproduce, it's quite random and never at the same time, so a 
little hard to fix for now.


> * Aura's Hifidelity dreams seems now fine:
> 	http://www.pouet.net/prod.php?which=996

It was an FDC problem that I fixed in 2008/12

>
>
> * As does Hemoroids Necrosys (it's music is something truly
>    horrible though):
> 	http://www.pouet.net/prod.php?which=14395

Music is crap, but it's how it sound on a real STE :(


> * Delirious 3 crashes on startup:
>    http://www.pouet.net/prod.php?which=21347

Worked for me. Have you tried in STE mode ?

>
> * Once the actual demo starts:
>    http://www.pouet.net/prod.php?which=15437
>
>    Bad taste dies to:
>    Your Atari program just did something terribly stupid:
>    VoidMem_xlate($533b0aa5)
>
>

I get this a few seconds after the yellow/red vector balls appear. Do 
you get the error at the same point ?
 From what I see, the demo code seems to be altered by a bad write at 
address $404c2. The resulting wrong instruction tries to add.w on an odd 
address, which creates this crash.

I will need to add some code in Hatari to track what part of the demo is 
producing this bad write.


>
> * AFL pro fooball doesn't anymore freeze on startup:
>    http://lists.berlios.de/pipermail/hatari-devel/2010q2/002284.html
>
>    But there's some screen update/color issue between the game halves
>    (when running a demo game) when panels from top&  bottom are scrolled
>    towards screen center.
>
>
> * GGN's Kuovadis game (Daleks clone) dies at startup after screen goes blank
>    and it tries to scan disk for mods.  I'm not sure where I got the program,
>    GGN's page seems to be missing a link:
> 	http://users.hol.gr/~ggn/

Havent't tested these 2 ones for now.


Nicolas



More information about the hatari-devel mailing list