Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
116 user(s) are online (67 user(s) are browsing Forums)

Members: 0
Guests: 116

more...

Headlines

 
  Register To Post  

« 1 (2) 3 4 5 »
Re: Exodus The Last War patching : work in progress
Home away from home
Home away from home


See User information
@Fredrik, Daniel
Yeah, thanks both of you! That works!


@Daniel
Quote:

You can comment in / out the first BEQ.W. If the behaviour doesn't change for sure then salass00's asumption that the coder falsely asumed that movea changes cc is likely to be correct.


Yeah, commented out, and nothing changes (i.e. same works as before, DSI gone).


@All
I found another 2 issues for now:

1. In the game itself, every 3 seconds, everything "pauses" for a little while, like maybe for half of a second. But that happens stable and in the menu, and in-game itself, it's like dbl-buffering issues or WaitTOF/something dunno.

Any ideas are welcome.

If it is related to that "null pointer crash" issue it is unclear, can be that this DSI hits because of another issue coming from somewhere, or that can be just an independent issue very well as well.


2. When we exit from preferences (that is another binary), we always crash.

Seeing information to the patches released for the game back in past, they have the same issue and it should be fixed in the patch applied, but it is still not. So seems there is some general bug with which they try to fix (and maybe fix for os3), but on OS4 we, as usual, can catch everything bad, and the bug seems still there.

A bug is not skippable and complete lockup. That bug happens to be there even 10 years ago on pretty older amigaos4 versions and on different hardware (at least on A1 and on Sam440 for sure) so that something with the code of the preferences 100%.


There are 2 logs of that crash:

1. With Petunia JIT enabled:

http://kas1e.mikendezign.com/aos4/68k ... _on_exit_with_petunia.txt

2. With Petunia JIT disabled via compatibility prefs:

http://kas1e.mikendezign.com/aos4/68k ... exit_petunia_disabled.txt

Crashes look 1:1 the same and crashed part also the same.

There are disassembled codes of the preference binary:

http://kas1e.mikendezign.com/aos4/68k_patches/Exodus/SetUp.asm

The crash is just a lockup, those logs i got from serial, so no luck for GR. So there is even no 68k stack trace as far as i can see.

I only can see that everything comes from intuition, and such hardcore lockups usually happen when one fucked up with Send/Recv IMSGs, etc or something.

Will try to trace all the intuition calls on OS3 to see what is called when we hit the close button.

But at least what is for sure, is that crash happens before CloseWindow() call (i already tried to put RTS before).

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Exodus The Last War patching : work in progress
Home away from home
Home away from home


See User information
@all
Tried to find roots of DSI when we exit from preferences.

Made a trace on os3 of all intuition and gadtools calls when we exit, there they are:

main loop:

 
gadtools GT_FilterIMsg
 gadtools 
GT_PostFilterIMsg
 gadtools 
GT_FilterIMsg
 gadtools 
GT_PostFilterIMsg
 gadtools 
GT_FilterIMsg
 gadtools 
GT_PostFilterIMsg

next we press close gadget or hit cancel button and then:

 
intuition UnlockPubScreen
 intuition 
ClearMenuStrip
 intuition 
ModifyIDCMP
 intuition 
BeginRefresh
 intuition 
GetScreenDrawInfo
 intuition 
FreeScreenDrawInfo
 intuition 
GetAttr
 intuition 
DrawImageState
 intuition 
PrintIText
 intuition 
GetAttr
 intuition 
DrawImageState
 intuition 
PrintIText
 intuition 
GetAttr
 intuition 
DrawImageState
 intuition 
PrintIText
 intuition 
GetAttr
 intuition 
DrawImageState
 intuition 
PrintIText
 intuition 
PrintIText
 intuition 
PrintIText
 intuition 
GetAttr
 intuition 
DrawImageState
 intuition 
GetAttr
 intuition 
DrawImageState
 intuition 
GetAttr
 intuition 
DrawImageState
 intuition 
GetAttr
 intuition 
DrawImageState
 intuition 
EndRefresh
 intuition 
PrintIText
 intuition 
GetScreenDrawInfo
 intuition 
FreeScreenDrawInfo
 intuition 
GetAttr
 intuition 
DrawImageState
 intuition 
GetScreenDrawInfo
 intuition 
FreeScreenDrawInfo
 intuition 
GetAttr
 intuition 
DrawImageState
 intuition 
PrintIText
 intuition 
GetAttr
 intuition 
DrawImageState
 intuition 
PrintIText
 intuition 
GetAttr
 intuition 
DrawImageState
 intuition 
PrintIText
 intuition 
GetAttr
 intuition 
DrawImageState
 intuition 
PrintIText
 intuition 
PrintIText
 intuition 
PrintIText
 intuition 
GetAttr
 intuition 
DrawImageState
 intuition 
GetAttr
 intuition 
DrawImageState
 intuition 
GetAttr
 intuition 
DrawImageState
 intuition 
GetAttr
 intuition 
DrawImageState
 intuition 
DisposeObject
 intuition 
DisposeObject
 intuition 
DisposeObject

; if put "RTS" or "illegal access" for DIS before CloseWindow we still crashso it happens before

 intuition 
CloseWindow
 intuition 
DisposeObject
 intuition 
FreeScreenDrawInfo
 gadtools 
FreeVisualInfo
 intuition 
DisposeObject
 intuition 
DisposeObject
 intuition 
DisposeObject
 intuition 
DisposeObject
 intuition 
DisposeObject
 intuition 
DisposeObject
 intuition 
DisposeObject
 intuition 
DisposeObject
 intuition 
DisposeObject
 intuition 
DisposeObject
 intuition 
DisposeObject
 intuition 
DisposeObject
 intuition 
DisposeObject
 intuition 
DisposeObject
 intuition 
DisposeObject
 intuition 
DisposeObject
 intuition 
DisposeObject
 gadtools 
FreeGadgets


I already tried to put RTS and/or "illegal access" to swap DSI right before CloseWindow, and it still fails the same even doesn't come to my DSI.


Then i tried to put it right before Unlock to produce DSI, just like this:

LAB_003E:

;
call for skippable DSI
    TST
.B $aaaaaaaa
    
    MOVE
.L    -32592(A5),D0        ;1daa202d80b0
    MOVE
.L    D0,-(A7)        ;1dae2f00
    MOVE
.L    -32696(A5),D0        ;1db0202d8048
    MOVE
.L    D0,-(A7)        ;1db42f00
    MOVEA
.L    (A7)+,A1        ;1db6225f
    MOVEA
.L    (A7)+,A0        ;1db8205f
    MOVEA
.L    -32744(A5),A6        ;1dba2c6d8018
    JSR    
-516(A6)        ;1dbe4eaefdfc
    JSR    LAB_03E5        
;1dc24eb90000c28e
LAB_003F
:



And still the same freeze, and I can't see my DSI...

Of course, binary also uses dos.library and exec.library, but it just feels like freeze happens exactly when we are about to break the main loop. It's like window settings done in some wrong way, which only arise when we about to close window.


Edited by kas1e on 2022/1/14 14:02:46
Edited by kas1e on 2022/1/14 14:04:25
Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Exodus The Last War patching : work in progress
Just can't stay away
Just can't stay away


See User information
@kas1e

About prefs, is there a way to know what "format"/layout/struct the prefs file has?
So maybe an updated ReAction prefs GUI can be made.

Go to top
Re: Exodus The Last War patching : work in progress
Home away from home
Home away from home


See User information
@jabirulo
Yeah, the prefs file is a small one, and the format file is not a big one too.

I thought about writing prefs too before, but that can take more time IMHO in comparison with just one bug fixed. But if there will be no luck, then yep...


edit: their prefs real buggy, when I just press RMB (as they have an RMB menu too for some options), and navigate through the menu, it just freezes the same as when I hit close/chancel/etc. So seems their whole main loop broken


Edited by kas1e on 2022/1/14 15:05:19
Edited by kas1e on 2022/1/14 15:08:13
Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Exodus The Last War patching : work in progress
Home away from home
Home away from home


See User information
@All
So after Javier offers help to write reaction-based preference for Exodus so it will be not only without bugs but will not be that weird in all areas as original, i just reparse prefs format of exodus and there is (just for reference purposes later):

Quote:

32 bytes : name of cdda device
1 byte : unit # of cdda device
1 byte : language : 0 : poland, 1 : english, 2 : deutch
1 byte : game screen : 0 : lowres 1 : hires
1 byte : GfxDirect : 1 enabled , 0: disabled
1 bytes : PlayCD : 1 enabled, 0 : disabled
1 byte : Use Paula : 1 enabled, 0: disabled
4 bytes : screenmode ID 1 (for playing movies, 320x240)
4 bytes : screenmode ID 2 (for a game, 640x480)
1 byte : task priority (slider from -15 to +15)
1 byte : skip anim, 1 : enabled, 0 : disabled
32 bytes : name of null-modem device
4 bytes : baud rate of null-modem device (slider, from 9200 to 115200)
1 byte : unit number for null modem
1 byte : Force Intuition Mouse Pointer: 1 enabled, 0 : disabled.
2 bytes : 00 00 reserved?



So probably with Prefs we can chill out and concentrate instead on the Game's bugs.

Imho at this point, we need to deal with that "pause every 3 seconds bug".



Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Exodus The Last War patching : work in progress
Home away from home
Home away from home


See User information
@All
Some good findings of the "pause" bug.

Once I disable music (that one which plays from CD-Audio), then NO pause.

I.e.
just sound effects: no pauses
sounds effects + music: pauses
just music: pauses

For sake of tests, i do that: disable music from the game, keep on sound effects, switch back to the workbench, run playCDDA, and start to play the exact same track from exactly the same place. Back to the game, and while having the same sound+music, have no pauses!

That means their Cd-Audio player suck. Or it doing something weird our cdplayer.library/cddapatch do not support.

@Frederik
Maybe you as an expert and author of cdplayer/cddpatch have any idea what it can be, and where to look? I.e. what functions, etc to see their cd player code in disassembly.

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Exodus The Last War patching : work in progress
Home away from home
Home away from home


See User information
@all
So asked on EAB 68k coders what were used back in times for playing CD-Audio, and seems there were just 2 ways: one was cdplayer.library and another way was direct play over SCSI device via DoIo/IoReq/etc, by using HD_SCSICMD and sending a "PLAY AUDIO" command.

So far Napalm and WipeOUT use cdplayer.library : those ones ok.

Other games probably use "direct way", and while for example Foundation, Payback and Exodus do work via our CDDAPatch. Games as Earth2140 and Heretic2 fail for some reason to work with our current CDDAPatch (through Earth2140 says that CD audio initialized OK, but then in-game we have no list of tracks).

Anyway, long story short, in Exodus we need to understand if they indeed use HD_SCSICMD and "Play Audio" command to play audio CD tracks, and once we found what way was used, we may move further with bug-fix.

Reading SCSI list of commands i found that there is not only "PLAY AUDIO(10) (code: 0x45)" but also "PLAY AUDIO MSF (code: 0x47) and also "PLAY AUDIO 12 (code: 0xA5). Which ones are used in Exodus dunno at the moment. The length of the commands also can be different...

So will try now at first to find the filling of the IOStdReq structure with HD_SCSICMD, and then if so, what kind of commands it uses. That at least should bring us to their audio-cd-player's code.


EDIT: find out, Exodus indeed use HD_SCSICMD:


LAB_092B:
    
MOVEA.L    8(A4),A1        ;15fc8226c0008
    MOVE
.L    #$0000001e,36(A1)    ;15fcc: 237c0000001e0024
    
LEA    0(A3),A0        ;15fd441eb0000
    MOVE
.L    A0,40(A1)        ;15fd823480028
    MOVE
.W    #$001c,28(A1)        ;15fdc: 337c001c001c
    
MOVE.L    1536(A3),0(A0)        ;15fe2216b06000000
    MOVE
.L    1540(A3),4(A0)        ;15fe8216b06040004
    MOVE
.W    #$0000,28(A0)        ;15fee: 317c0000001c
    
LEA    30(A3),A1        ;15ff443eb001e

    MOVE
.L    A1,22(A0)        ;15ff821490016
    MOVE
.L    1544(A3),12(A0)        ;15ffc216b0608000c
    MOVE
.W    1548(A3),16(A0)        ;16002316b060c0010
    MOVE
.B    #$03,20(A0)        ;16008: 117c00030014
    
MOVEA.L    8(A4),A1        ;1600e226c0008
    MOVEA
.L    ABSEXECBASE,A6        ;160122c7900000004
    JSR    
-456(A6)        ;160184eaefe38
    
    MOVE
.B    31(A1),D5        ;1601c1a29001f
    RTS                
;160204e75



See, -456 is DoIO, all the previous MOVE it's about filling Req struct. For example part starts at "MOVE.W #$001c,28(A1)" is "req->io_Command = HD_SCSICMD;" Now need to find a place where UBYTE struct for command placed, and we can find what command is used, and then based on this can think wtf.



Edited by kas1e on 2022/1/15 21:22:41
Edited by kas1e on 2022/1/15 21:27:27
Edited by kas1e on 2022/1/15 21:36:46
Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Exodus The Last War patching : work in progress
Home away from home
Home away from home


See User information
@all
In the meantime wip of new prefs for Exodus by Javier:

Resized Image

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Exodus The Last War patching : work in progress
Not too shy to talk
Not too shy to talk


See User information
@kas1e @javier(jabirulo?)

Great progress!
Keep on hacking!

1989-> A500, A600, A3000, A4000, A1200, CD32, µA1, PegII, A1XE, CDTV, Amy/416D79, A1X5000, Vampire 500 V2+, Vampire 600 V2, Amy-ITX, Denise ITX <-2024
Go to top
Re: Exodus The Last War patching : work in progress
Home away from home
Home away from home


See User information
@All
Javier finished prefs, yeah!

Probably for patch v0.1 we need to create 2 patches: one for RadeonHD/RX cards with padding-fix + DSI in meni/exit fixes, and another one for older Radeon cards, where is no need for a padding fix, but fixing DSIs is worth as well. I can just add in the installer a choice for what Radeon patch is installed or something...

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Exodus The Last War patching : work in progress
Home away from home
Home away from home


See User information
@kas1e

awesome stuff Exodus needs min fast 040 to run decent on 68k miggies but will be great on our OS4.1 machines

_______________________________
c64-dual sids, A1000, A1200-060@50, A4000-CSMKIII
Catweasel MK4+= Amazing
! My Master Miggies-Amiga1000 & AmigaONE X1000 !
mancave-ramblings

Go to top
Re: Exodus The Last War patching : work in progress
Home away from home
Home away from home


See User information
@All
The first version of the patch is out (on os4depot in upload query for now). That what done in:

Quote:

-- new Reaction based preference binary (old one was buggy very much). Thanks to Javier who wrote a new one.
-- fixed to works on RadeonHD/RX (the game wasn't aware of padding, and use the old/default one which is 128 making it works only on older cards). Thanks to Daniel and LiveForIt.
-- fixed DSI in the menu. Thanks to Daniel and Salas00
-- fixed DSIs on exit. Thanks to Daniel.





And TODO:

Quote:

- fix remain padding issue for Radeon RX/HD (credits, loading bar)
- when we have no CDDA device and set the "No CD-Audio" option game still fails to run and still asks for a CDDA device, while shouldn't.
- made a screen be not "custom" but workbench alike, so we can amiga+m and see it.
- A mouse pointer is not all the time active from the first run (need to do amiga+m , click on WB, and then back to the game)
- fix hiccups of the game when CD-Audio is enabled. Forced intuition mouse pointer fixes the move of mouse, but not the gameplay itself. maybe just rewrote CD-Player and replace the old one.
- cd audio track didn't stop when we exit from the game but play till the end. Can be also auto-fixed when rewrote CD-Player (if).
- to make intro movies work


And anyone who wants to play in READ THE README! I wrote there an ideal (i hope) step-by-step guide to how setup it all starting from the basics like "once you get CD" and ending with patching itself.


In the end, some motivated video:

https://youtu.be/AVypx_KZkhU

Keep post questions/suggestions/bug-reports here.

And thanks to everyone who contributed: LiveForIT, Daniel, Salas00 & Javier.

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Exodus The Last War patching : work in progress
Home away from home
Home away from home


See User information
@kas1e

I'm stuck on:

4. Once you read with everything, mount the .cue ?


_______________________________
c64-dual sids, A1000, A1200-060@50, A4000-CSMKIII
Catweasel MK4+= Amazing
! My Master Miggies-Amiga1000 & AmigaONE X1000 !
mancave-ramblings

Go to top
Re: Exodus The Last War patching : work in progress
Home away from home
Home away from home


See User information
@328gts

Start DiskImageGui should already be installed, if you have installed the AmigaOS4.1 extras, if not you need to download it.


Edited by LiveForIt on 2022/1/21 18:28:17
(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top
Re: Exodus The Last War patching : work in progress
Home away from home
Home away from home


See User information
@328gts
Quote:

4. Once you read with everything, mount the .cue ?


As lifeforit says you need to have diskimage.device, and just mount inside of it .cue file coming inside of archive when you download image from APC-TCP.

But be sure that if you mount your .cue file to the IDC0:, then in the tooltypes of CDDAPatch which you placed in commodites and make it runs from wbstartup you also set ICD0: to be patched.

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Exodus The Last War patching : work in progress
Home away from home
Home away from home


See User information
@kas1e

Progress bar is broken, and credit screen.

(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top
Re: Exodus The Last War patching : work in progress
Home away from home
Home away from home


See User information
@LiveForIt
And somebody didn't read the readmes, while i point a few times about it :) (check TODO section). They're are just some the same kind of "padding" issues that handle those parts that need to be found.

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Exodus The Last War patching : work in progress
Home away from home
Home away from home


See User information
@kas1e

thing is I don't see any .cue file to mount in the ExodusGFX_eng.lha files?

_______________________________
c64-dual sids, A1000, A1200-060@50, A4000-CSMKIII
Catweasel MK4+= Amazing
! My Master Miggies-Amiga1000 & AmigaONE X1000 !
mancave-ramblings

Go to top
Re: Exodus The Last War patching : work in progress
Home away from home
Home away from home


See User information
@kas1e

I belive this routine need to be fix.

LAB_0187_copy_image:    // D0=X, D1=Y, D3=Width, D4=Height
    
MOVEA.L    LAB_0C41,A6        ;0522c2c79000262fa
    CLR
.L    D5            ;052324285
    MOVE
.W    LAB_0A80_src_bytes_per_row,D5        ;052343a390001f8c0
    MULU    D5
,D1            ;0523ac2c5
    ANDI
.W    #$fffc,D0        ;0523c: 0240fffc
    
ADD.L    D0,D1            ;05240d280
    ANDI
.W    #$fffc,D3        ;05242: 0243fffc
    
SUB.W    D3,D5            ;052469a43
    LSR
.W    #2,D3            ;05248: e44b
    
MOVEA.L    LAB_0A8B,A0        ;0524a20790001f8f8

    BSR
.W    LAB_018C_LockBitMap        ;052506100002e
    TST
.L    D0            ;052544a80
    BEQ
.W    LAB_018B_noLock        ;0525667000026
    MOVEA
.L    D0,A1            ;0525a2240
    SUBQ
.W    #1,D4            ;0525c: 5344
    
BGE.W    LAB_0188        ;0525e6c000004
    MOVEQ    
#0,D4            ;05262: 7800
LAB_0188:
    
SUBQ.W    #1,D3            ;05264: 5343
    
ADDA.L    D1,A0            ;05266d1c1
    ADDA
.L    D1,A1            ;05268: d3c1

LAB_0189_outerloop
:
    
MOVE.W    D3,D0            ;0526a3003

LAB_018A_innerloop
:
    
MOVE.L    (A0)+,(A1)+        ;0526c22d8
    DBF    D0
,LAB_018A_innerloop        ;0526e51c8fffc

    ADDA
.W    D5,A0            ;05272d0c5     ---- next src ROW (add BytesPerRow)
    
ADDA.W    D5,A1            ;05274d2c5     ---- next dest ROW (add BytesPerRow)
    
DBF    D4,LAB_0189_outerloop        ;0527651ccfff2

    BSR
.W    LAB_018E_UnLockBitMap        ;0527a61000036
LAB_018B_noLock
:
    
RTS                ;0527e4e75

(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top
Re: Exodus The Last War patching : work in progress
Home away from home
Home away from home


See User information
@328gts
It's coming not with a bug-fix-update archive, but inside of the archive with a disk image. I.e image of the Exodus disk contains 2 files: EXODUS_THE_LASTWAR.BIN (about 800mb of size) and EXODUS_THELASTWAR.CUE (just 0.5kb of size). This .cue file show where the music tracks (cd-audio) are placed.

You can not worry about audio tracks if you don't want to hear music and skip that part and just mount only .BIN file.

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top

  Register To Post
« 1 (2) 3 4 5 »

 




Currently Active Users Viewing This Thread: 1 ( 0 members and 1 Anonymous Users )




Powered by XOOPS 2.0 © 2001-2023 The XOOPS Project