|[hatari-devel] Pinball dream Falcon is working... but...|
[ Thread Index |
| More lists.tuxfamily.org/hatari-devel Archives
I've hacked a lot hatari and I've managed to get a fully working version
of Pinball dream (I've played with it during the last hour).
The music is really nice (nearly perfect I would say).
There's just a little screen jumping sometimes, but it's very playable.
The problem is that I've really badly hacked hatari to obtain this :
I detect if there's a write into $ff8205, 07 or 09 (in video.c).
If yes, I fill 2 new variables into videl.c
Uint32 newAddrScr; /* keeps the screen adress when one writes
into the count registers */
Uint16 hblChange; /* keeps the hbl value when one writes into
the count registers */
It's OK to do this for only one change during a VBL, but if there are
more changes, it will only take the last one.
This could eventually be changed by an array of changes.
This part of the code is quite OK for me.
Then, I've changed a little VIDEL_ConvertScreenZoom() to take into
account the change of the video address.
The problem is that video.c detect the change at HBL=89, but the real
change should be at hbl = 83, so I've added :
if (hblChange > 0)
hblChange = 83;
Wich is OK for Pinball Dream, but not for any other program that would
write into $ff8205, 07 or 09.
As long as Videl code is not rewritten, Pinball Dream won't work. And
that's probably one of the best Falcon games.
Do you think I should propose this hack for those who would like to
test, or should I publish nothing but when the Videl is correctly taken
into account (this may take a while) ?
Would someone here be interrested to test ?
I return into Pinball dreams for more testing :)