Giana Sisters STE - New Game!

All about ST/STE games

Moderators: simonsunnyboy, Mug UK, ICS, Doctor Bob Gordon, Moderator Team

Post Reply
User avatar
NGF
Captain Atari
Captain Atari
Posts: 395
Joined: Tue Nov 22, 2005 9:22 pm
Location: Stockholm, Sweden

Re: Giana Sisters STE - New Game!

Post by NGF »

Another high quality STE conversion, thank you! :cheers:
"4160" STE with Ultrasatan | Falcon 030 14MB with CF-reader | TT030 | STacy | 520STFM x 2 | 520ST x 2
User avatar
bod/STAX
Atari Super Hero
Atari Super Hero
Posts: 508
Joined: Wed Nov 24, 2004 8:13 pm
Location: Halesowen, West Midlands, England

Re: Giana Sisters STE - New Game!

Post by bod/STAX »

AtariZoll wrote:
bod/STAX wrote:The way I check for the floppy motor to stop in R-Type is this:

Code: Select all

        moveq #0,d0
.l1     move.w $fffff8604.w,d0
        btst #7,d0
        bne.s .l1
        move.l #$e0e0707,$fffff8800.w ; turn off drive light
That simple way may cause problems on Mega STE - there are some + lines of PSG port used. So, better is to deselect only drive A selection line. I talk from own experience.

Code: Select all

....
   move.b  #14,$FFFF8800.w
   move.b $FFFF8800.w,d0
   and.b  #$FC,d0    *  Desel. drive A and side B
   move.b d0,$FFFF8802.w

I ripped that code out of the Life's a Bitch demo bootsector years ago. I have some different code now:

Code: Select all

        move.w #$80,$fffff8606.w
.l1     move.w $fffff8604.w,d0
        btst #7,d0
        bne.s .l1
        moveq #7,d0
        move.b #$e,$fffff8800.w
        move.b $fffff8800.w,d1
        and.b #$f8,d1
        or.b d0,d1
        move.b d1,$fffff8802.w
This is actually written by Griff/Inner Circle. Would this work better on Mega STE?
It deselects the current drive rather than specifically drive 'A'.

Sorry I don't know that much about DMA stuff.
So let it be written, So let it be done. I'm sent here by the chosen one.
User avatar
npomarede
Atari God
Atari God
Posts: 1354
Joined: Sat Dec 01, 2007 7:38 pm
Location: France

Re: Giana Sisters STE - New Game!

Post by npomarede »

Regarding the unstability of the bottom part of the screen on Hatari, this is due to a limitation in Hatari when reading the video counter and when this read overlaps with the point where a new HBL starts.
The code you use to correct the offset you sometimes have because of the blitter does this in part :

Code: Select all

[wait for a change in $ffa21, then]
cpu video_cyc= 51640 440@100 : $17b554 : 13f9 ffff 8205 0017 9375             move.b    $ffff8205,$179375
cpu video_cyc= 51668 468@100 : $17b55e : 13f9 ffff 8207 0017 9376             move.b    $ffff8207,$179376
cpu video_cyc= 51696 496@100 : $17b568 : 13f9 ffff 8209 0017 9377             move.b    $ffff8209,$179377
HBL 100 video_cyc=51724 pending_cyc=12 jitter=4
cpu video_cyc= 51724  12@101 : $17b572 : 2039 0017 9374                       move.l    $179374,d0
cpu video_cyc= 51744  32@101 : $17b578 : 90b9 0017 9380                       sub.l     $179380,d0
cpu video_cyc= 51768  56@101 : $17b57e : b0bc 0000 3700                       cmp.l     #$3700,d0
cpu video_cyc= 51784  72@101 : $17b584 : 6e06                                 bgt.s     $17b58c
The last read in $ff8209 sometimes overlaps with the new HBL by just a few cycles (12 at max), it's normal to have a small jitter during this exception.
When the read overlaps, Hatari will return the value for the counter of the next line, so your code will try to correct a blitter-unstability that didn't really happen, hence the problem.
I plan to change this in Hatari, but it has more general effect in other programs / demos, so it will require a lot of changes.
In the meantime, you can change slightly your code to make it work under Hatari : if you speed up these 3 reads in the video counter, then there will be no overlap and it should work :
- use short address, $ffff8205.w, not $fff8205.l (save 4 cycle per read)
- use a pointer to save the result : save 8 cycles per read
Both will save 12 cycles per read, more could be save by using more registers, but this will be enough for Hatari (and as you save cycles, this will benefit to real STE too :) )
So, new code could be :
lea video_adr+1(pc),a0 ; this is $179375 in above code
move.b $ff8205.w,(a0)+
move.b $ff8207.w,(a0)+
move.b $ff8209.w,(a0)+
Note that "lea video_adr+1(pc),a0" should be made *before* waiting for the change in $fffa21, this way you have the faster code possible once $fffa21 changes.

Nicolas
User avatar
npomarede
Atari God
Atari God
Posts: 1354
Joined: Sat Dec 01, 2007 7:38 pm
Location: France

Re: Giana Sisters STE - New Game!

Post by npomarede »

bod/STAX wrote: This is actually written by Griff/Inner Circle. Would this work better on Mega STE?
It deselects the current drive rather than specifically drive 'A'.

Sorry I don't know that much about DMA stuff.
Yes, that code is better, because it only changes drives/side bits, but leaves all other bits unchanged.
AtariZoll code is similar, deselects drive A/B, but leaves side as it was. Both versions will work.
[EDIT] note that Griff's code deselects both drives, not just drive A
AtariZoll
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2978
Joined: Mon Feb 20, 2012 4:42 pm
Contact:

Re: Giana Sisters STE - New Game!

Post by AtariZoll »

Well, actually, it is best to deselect all - so drive B too, even if there is no such. So, best to and with #$F8 .
Really good code should add some time-out for motor-on line test - after couple seconds should go further - so no freeze if drive is empty - good for hard disk users which have no money for floppies after buying Gigafile :mrgreen:
Instead looking diverse demo or game code better idea is to look how TOS does it :D
It is not so much DMA stuff, but because in Mega STE PSG output port A controls Xlan for instance, and changing that line may trigger some not welcome interrupt.
Famous Schrodinger's cat hypothetical experiment says that cat is dead or alive until we open box and see condition of poor animal, which deserved better logic. Cat is always in some certain state - regardless from is observer able or not to see what the state is.
User avatar
Kreese
Atari freak
Atari freak
Posts: 71
Joined: Fri Oct 21, 2005 8:08 pm
Location: Kungsbacka, Sweden
Contact:

Re: Giana Sisters STE - New Game!

Post by Kreese »

GREAT GREAT GREAT Giana Sisters!!!

Superb work! I just have tried it in Steem 3.2 and works just fine. I have to transfer this to disk and try it on a real machine. This will be perfect for the "demo room" at Retrospelsmässan 2014! If it´s ok to run it there?
Zamuel_a
Atari God
Atari God
Posts: 1243
Joined: Wed Dec 19, 2007 8:36 pm
Location: Sweden

Re: Giana Sisters STE - New Game!

Post by Zamuel_a »

Thanks for the help!

I have now put out a new version with some minor fixes. It should now work in Hatari and be able to run from HD. I also put in a check so that if you start it from a machine that is not an STE you get's an message.
ST / STFM / STE / Mega STE / Falcon / TT030 / Portfolio / 2600 / 7800 / Jaguar / 600xl / 130xe
User avatar
npomarede
Atari God
Atari God
Posts: 1354
Joined: Sat Dec 01, 2007 7:38 pm
Location: France

Re: Giana Sisters STE - New Game!

Post by npomarede »

Zamuel_a wrote:Thanks for the help!

I have now put out a new version with some minor fixes. It should now work in Hatari and be able to run from HD. I also put in a check so that if you start it from a machine that is not an STE you get's an message.
Just tested it and it works much better, no more flicker in Hatari and no more lock at start !

Still, I saw another problem : when you lost, the game will do some disk access and will loop forever at $b66, waiting for FDC to complete. Same problem, this can't work without a floppy in drive :

Code: Select all

$000b60 : 0838 0005 fa01                       btst      #5,$fffffa01.w
$000b66 : 66f8                                 bne.s     $b60
$000b68 : 3038 8604                            move.w    $ffff8604.w,d0
$000b6c : 0280 0000 00ff                       andi.l    #$ff,d0
$000b72 : 2b40 0018                            move.l    d0,$18(a5)
$000b76 : 4e75                                 rts       
This is because the game does a restore and a read sector (sector 5, track 0) (to read high score I guess) :

Code: Select all

fdc type I restore spinup=on verify=off steprate=3 drive=0 tr=0x5 head_track=0x5 VBL=6974 video_cyc=71784 104@140 pc=b50
fdc type II read sector sector=0x5 multi=off spinup=on settle=off tr=0x0 head_track=0x0 side=0 drive=0 dmasector=12 addr=0x2000 VBL=6975 video_cyc=36408 56@71 pc=b50
This should be disabled too, but I don't know what will be displayed as High Scores in that case ?
Zamuel_a
Atari God
Atari God
Posts: 1243
Joined: Wed Dec 19, 2007 8:36 pm
Location: Sweden

Re: Giana Sisters STE - New Game!

Post by Zamuel_a »

Hmm ok. Well I can try and see what is possible to do. So the best thing is not to die :wink:
I can remove the looping and see what happenes.
Last edited by Zamuel_a on Sat Apr 05, 2014 12:51 pm, edited 1 time in total.
ST / STFM / STE / Mega STE / Falcon / TT030 / Portfolio / 2600 / 7800 / Jaguar / 600xl / 130xe
User avatar
npomarede
Atari God
Atari God
Posts: 1354
Joined: Sat Dec 01, 2007 7:38 pm
Location: France

Re: Giana Sisters STE - New Game!

Post by npomarede »

Zamuel_a wrote:Hmm ok. Well I can try and see what is possible to do. So the best thing is not to die :wink:
Then add a trainer menu :D
AtariZoll
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2978
Joined: Mon Feb 20, 2012 4:42 pm
Contact:

Re: Giana Sisters STE - New Game!

Post by AtariZoll »

Tests on real HW:

Mega STE: similar as by SSB - shaking pic , freeze at first run. Second run worked, but control of player is weird - left-right movement is with slowdowns. I'm pretty sure that reason is code for reading enhanced STE joystick ports, which are not present in Mega STE. So, should add HW test, and disabling Jagpad read code if run on MSTE.
And if no floppy freezes - solution already given - best to remove completely that motor on test.

Falcon: freezes with white screen right after start. I removed Vfreq ( $FF820A) write . This on Falcon ? I think that should work - there is blitter, there is JagPad ... But solving it without Falcon would be almost impossible.

TT: needs setting of TT address bus in 24-bit mode, removing Vfreq write (see above) - after that it worked until play start, when freezed - of course - no blitter in TT ! So, if could solve without blitter on 4x faster CPU ... :mrgreen:

I recommend that change all HW regiser access to short addressing, so instead $FF8800 use $FFFF8800.w (Devpac expects that form), but address will take only 2 bytes, and is more compatible with 68030 CPU.
Famous Schrodinger's cat hypothetical experiment says that cat is dead or alive until we open box and see condition of poor animal, which deserved better logic. Cat is always in some certain state - regardless from is observer able or not to see what the state is.
AtariZoll
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2978
Joined: Mon Feb 20, 2012 4:42 pm
Contact:

Re: Giana Sisters STE - New Game!

Post by AtariZoll »

I noticed that game reloads level always after dying. So, another place where need to remove completely FDC chip access.
All this is because crack, on which this is based, and which uses Ramdisk, did not remove floppy access. But work on hard disk on machine without floppy demands it - I did removal in several cases in hard disk adapts.
Famous Schrodinger's cat hypothetical experiment says that cat is dead or alive until we open box and see condition of poor animal, which deserved better logic. Cat is always in some certain state - regardless from is observer able or not to see what the state is.
Zamuel_a
Atari God
Atari God
Posts: 1243
Joined: Wed Dec 19, 2007 8:36 pm
Location: Sweden

Re: Giana Sisters STE - New Game!

Post by Zamuel_a »

Then add a trainer menu :D
He he, well it feels strange to add a trainer menu into a "offical" game and not a cracked release. There ARE several cheats that can be turned on by pressing the right button at the right screen :wink:
Mega STE: similar as by SSB - shaking pic , freeze at first run. Second run worked, but control of player is weird - left-right movement is with slowdowns. I'm pretty sure that reason is code for reading enhanced STE joystick ports, which are not present in Mega STE. So, should add HW test, and disabling Jagpad read code if run on MSTE.
This will be easy to do.

Can't undestand why it freeze at first run. That has never happened to me.
ST / STFM / STE / Mega STE / Falcon / TT030 / Portfolio / 2600 / 7800 / Jaguar / 600xl / 130xe
AtariZoll
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2978
Joined: Mon Feb 20, 2012 4:42 pm
Contact:

Re: Giana Sisters STE - New Game!

Post by AtariZoll »

Most likely because access to JagPad caused bus error - freeze happened at play start. This answers not why works at second attempt, I know - but in Ataris is everything possible. Disable that JagPad read, and we will see ...
Famous Schrodinger's cat hypothetical experiment says that cat is dead or alive until we open box and see condition of poor animal, which deserved better logic. Cat is always in some certain state - regardless from is observer able or not to see what the state is.
Zamuel_a
Atari God
Atari God
Posts: 1243
Joined: Wed Dec 19, 2007 8:36 pm
Location: Sweden

Re: Giana Sisters STE - New Game!

Post by Zamuel_a »

I disabled the jagpad if it detects a Mega STE and it worked on my Mega without a problem.
ST / STFM / STE / Mega STE / Falcon / TT030 / Portfolio / 2600 / 7800 / Jaguar / 600xl / 130xe
User avatar
dml
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 3634
Joined: Sat Jun 30, 2012 9:33 am

Re: Giana Sisters STE - New Game!

Post by dml »

Zamuel_a wrote:
It is with 256 colors, and reducing to 16 colors (with even 24 bit palette), 320x200px gives best this:
Well that looked worse than the ST image :wink: I guess it's not so easy to just convert it. It needs to be redrawn. A Highcolor image is best ofcourse, but when I need to play a sample in the background so it would take alot of space and wouldn't fit on a disk, so maybe not worth it for something you look at only one time and after that try to pass as quick as possible. :wink:
Wow, you've done a great job on this conversion! Even more interesting that the new scrolling, sprites etc. has been retrofitted to an existing game!

As for titlepic/image - I once did a version of PCS which performed MOD channel mixing in the borders, so you could display 2-field hicolour and run an STE modplayer at the same time. I don't think I have the code now but the changes are relatively straightforward. One mix operation per scanline times 200 scanlines, plus filler in the lower border time - I think that was enough for 25khz replay.

It's also possible to produce a custom display routine with adjusted colour timings to make more room if higher quality (50khz) replay is wanted - but not sure if the trade is advantageous with a simple unrolled mixer.

Anyway, enough about that - great to see another nice project from you :)
Zamuel_a
Atari God
Atari God
Posts: 1243
Joined: Wed Dec 19, 2007 8:36 pm
Location: Sweden

Re: Giana Sisters STE - New Game!

Post by Zamuel_a »

New version uploaded.

Should now work on Mega STE by removing the Jagpad code if MSTE detected.
Will also not get stucked in a loop if runned from a HD. It will not really save the highscore but who cares... With cheats on the highscore is useless anyway
ST / STFM / STE / Mega STE / Falcon / TT030 / Portfolio / 2600 / 7800 / Jaguar / 600xl / 130xe
User avatar
dma
Atari God
Atari God
Posts: 1168
Joined: Wed Nov 20, 2002 11:22 pm
Location: France
Contact:

Re: Giana Sisters STE - New Game!

Post by dma »

Great job again Zamuel!

Indeed, with your enhancements, it can now be seen on STe as a worthy SMB clone. :)

[edit] I noticed a little collision bug. The bullet goes through the pillar, when Giana is positioned exactly there :
You do not have the required permissions to view the files attached to this post.
Zamuel_a
Atari God
Atari God
Posts: 1243
Joined: Wed Dec 19, 2007 8:36 pm
Location: Sweden

Re: Giana Sisters STE - New Game!

Post by Zamuel_a »

[edit] I noticed a little collision bug. The bullet goes through the pillar, when Giana is positioned exactly there
Interessting :) Seems to be that if the shoot bounce on the floor exactly when it should hit the pillar, this happens.
ST / STFM / STE / Mega STE / Falcon / TT030 / Portfolio / 2600 / 7800 / Jaguar / 600xl / 130xe
Zamuel_a
Atari God
Atari God
Posts: 1243
Joined: Wed Dec 19, 2007 8:36 pm
Location: Sweden

Re: Giana Sisters STE - New Game!

Post by Zamuel_a »

For anyone that might think this game is a little to hard, Press T at the intro scroller screen to get infinity life's :wink:
ST / STFM / STE / Mega STE / Falcon / TT030 / Portfolio / 2600 / 7800 / Jaguar / 600xl / 130xe
AtariZoll
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2978
Joined: Mon Feb 20, 2012 4:42 pm
Contact:

Re: Giana Sisters STE - New Game!

Post by AtariZoll »

Updated v. works better on Mega STE - controls are now OK with joystick. Works without floppy drive attached too.
But first run is still problematic: still shaking and after that freeze, crash. After reset it works fine - so is playable somehow.
ggstemerr.png
May be that problem is because some different crystal freq. in MSTE revision. I have machine made for Germany.
You do not have the required permissions to view the files attached to this post.
Famous Schrodinger's cat hypothetical experiment says that cat is dead or alive until we open box and see condition of poor animal, which deserved better logic. Cat is always in some certain state - regardless from is observer able or not to see what the state is.
Zamuel_a
Atari God
Atari God
Posts: 1243
Joined: Wed Dec 19, 2007 8:36 pm
Location: Sweden

Re: Giana Sisters STE - New Game!

Post by Zamuel_a »

But first run is still problematic: still shaking and after that freeze, crash. After reset it works fine - so is playable somehow.
Is this only on Mega STE? I have tried it on my STE and Mega STE and didn't get that error at all. On my regular STE I have started it 20+ times or something without any problems.
ST / STFM / STE / Mega STE / Falcon / TT030 / Portfolio / 2600 / 7800 / Jaguar / 600xl / 130xe
User avatar
Marcer
Atarilegend
Atarilegend
Posts: 4434
Joined: Wed Mar 10, 2004 6:21 pm
Location: sweden

Re: Giana Sisters STE - New Game!

Post by Marcer »

About the music. It all depends how much work you are intressted todo. But one idea is to Use ste digi for the sfx and then use a timer for the tune for sid fx in the tune.

Skickat från min C6903 via Tapatalk
- Atari ST/FM/E - Mega sTe - Portfolio - Falcon 030 FX 3 in 1 -- Atari 7800/Lynx/Jaguar -
- FTP... Ask for info
- Atari Legend (Games all-a-round)
- Paradize (Chip Music)
- Elite (Atari Softs)
- The Legion (Demos)
- Alive Maggie Team
_/|\_YM-RockerZ_/|\_
Zamuel_a
Atari God
Atari God
Posts: 1243
Joined: Wed Dec 19, 2007 8:36 pm
Location: Sweden

Re: Giana Sisters STE - New Game!

Post by Zamuel_a »

If it's just to replace the YM player with another one, sure it's not a problem. Adding DMA samples for effects are rather easy to. If I can get all the effects.
ST / STFM / STE / Mega STE / Falcon / TT030 / Portfolio / 2600 / 7800 / Jaguar / 600xl / 130xe
Zamuel_a
Atari God
Atari God
Posts: 1243
Joined: Wed Dec 19, 2007 8:36 pm
Location: Sweden

Re: Giana Sisters STE - New Game!

Post by Zamuel_a »

Are there any other ST games that should be remade for STE? :wink:
ST / STFM / STE / Mega STE / Falcon / TT030 / Portfolio / 2600 / 7800 / Jaguar / 600xl / 130xe
Post Reply

Return to “Games - General”