Who's Online |
59 user(s) are online ( 31 user(s) are browsing Forums)
Members: 0
Guests: 59
more...
|
|
|
|
Re: Exodus The Last War patching : work in progress
|
Posted on: 1/14 11:41
#21
|
Home away from home 
Joined: 2007/9/11 12:31 Last Login
: 6/22 18:37
From Russia
Group:
Registered Users
|
@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.txt2. With Petunia JIT disabled via compatibility prefs: http://kas1e.mikendezign.com/aos4/68k ... exit_petunia_disabled.txtCrashes 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.asmThe 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).
|
|
|
|
Re: Exodus The Last War patching : work in progress
|
Posted on: 1/14 13:46
#22
|
Home away from home 
Joined: 2007/9/11 12:31 Last Login
: 6/22 18:37
From Russia
Group:
Registered Users
|
@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 crash, so 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 ;1daa: 202d80b0
MOVE.L D0,-(A7) ;1dae: 2f00
MOVE.L -32696(A5),D0 ;1db0: 202d8048
MOVE.L D0,-(A7) ;1db4: 2f00
MOVEA.L (A7)+,A1 ;1db6: 225f
MOVEA.L (A7)+,A0 ;1db8: 205f
MOVEA.L -32744(A5),A6 ;1dba: 2c6d8018
JSR -516(A6) ;1dbe: 4eaefdfc
JSR LAB_03E5 ;1dc2: 4eb90000c28e
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
|
|
|
|
Re: Exodus The Last War patching : work in progress
|
Posted on: 1/14 14:23
#23
|
Quite a regular 
Joined: 2007/2/6 13:57 Last Login
: 6/29 17:44
From Donostia (SPAIN)
Group:
Registered Users
|
@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.
|
|
|
|
Re: Exodus The Last War patching : work in progress
|
Posted on: 1/14 14:43
#24
|
Home away from home 
Joined: 2007/9/11 12:31 Last Login
: 6/22 18:37
From Russia
Group:
Registered Users
|
@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
|
|
|
|
Re: Exodus The Last War patching : work in progress
|
Posted on: 1/14 23:13
#25
|
Home away from home 
Joined: 2007/9/11 12:31 Last Login
: 6/22 18:37
From Russia
Group:
Registered Users
|
@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".
|
|
|
|
Re: Exodus The Last War patching : work in progress
|
Posted on: 1/14 23:46
#26
|
Home away from home 
Joined: 2007/9/11 12:31 Last Login
: 6/22 18:37
From Russia
Group:
Registered Users
|
@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.
|
|
|
|
Re: Exodus The Last War patching : work in progress
|
Posted on: 1/15 20:58
#27
|
Home away from home 
Joined: 2007/9/11 12:31 Last Login
: 6/22 18:37
From Russia
Group:
Registered Users
|
@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 ;15fc8: 226c0008
MOVE.L #$0000001e,36(A1) ;15fcc: 237c0000001e0024
LEA 0(A3),A0 ;15fd4: 41eb0000
MOVE.L A0,40(A1) ;15fd8: 23480028
MOVE.W #$001c,28(A1) ;15fdc: 337c001c001c
MOVE.L 1536(A3),0(A0) ;15fe2: 216b06000000
MOVE.L 1540(A3),4(A0) ;15fe8: 216b06040004
MOVE.W #$0000,28(A0) ;15fee: 317c0000001c
LEA 30(A3),A1 ;15ff4: 43eb001e
MOVE.L A1,22(A0) ;15ff8: 21490016
MOVE.L 1544(A3),12(A0) ;15ffc: 216b0608000c
MOVE.W 1548(A3),16(A0) ;16002: 316b060c0010
MOVE.B #$03,20(A0) ;16008: 117c00030014
MOVEA.L 8(A4),A1 ;1600e: 226c0008
MOVEA.L ABSEXECBASE,A6 ;16012: 2c7900000004
JSR -456(A6) ;16018: 4eaefe38
MOVE.B 31(A1),D5 ;1601c: 1a29001f
RTS ;16020: 4e75
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
|
|
|
|
Re: Exodus The Last War patching : work in progress
|
|
Home away from home 
Joined: 2007/9/11 12:31 Last Login
: 6/22 18:37
From Russia
Group:
Registered Users
|
@all In the meantime wip of new prefs for Exodus by Javier: 
|
|
|
|
Re: Exodus The Last War patching : work in progress
|
Posted on: 1/16 15:02
#29
|
Just popping in 
Joined: 2007/1/10 21:56 Last Login
: 7/2 18:04
From Stockholm Sweden
Group:
Registered Users
|
@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 <-2022
|
|
|
Re: Exodus The Last War patching : work in progress
|
|
Home away from home 
Joined: 2007/9/11 12:31 Last Login
: 6/22 18:37
From Russia
Group:
Registered Users
|
@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...
|
|
|
|
Re: Exodus The Last War patching : work in progress
|
Posted on: 1/18 18:25
#31
|
Home away from home 
Joined: 2009/7/7 4:34 Last Login
: Today 3:08
From Man Cave, Canada
Group:
Registered Users
|
@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 Indivision AGA & Catweasel MK4+= Amazing ! My Master Miggies-Amiga1000 & AmigaONE X1000 ! mancave-ramblings
|
|
|
Re: Exodus The Last War patching : work in progress
|
Posted on: 1/18 22:23
#32
|
Home away from home 
Joined: 2007/9/11 12:31 Last Login
: 6/22 18:37
From Russia
Group:
Registered Users
|
@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_KZkhUKeep post questions/suggestions/bug-reports here. And thanks to everyone who contributed: LiveForIT, Daniel, Salas00 & Javier.
|
|
|
|
Re: Exodus The Last War patching : work in progress
|
Posted on: 1/21 17:39
#33
|
Home away from home 
Joined: 2009/7/7 4:34 Last Login
: Today 3:08
From Man Cave, Canada
Group:
Registered Users
|
@kas1e
I'm stuck on:
4. Once you read with everything, mount the .cue ?
|
_______________________________ c64-dual sids, A1000, A1200-060@50, A4000-CSMKIII Indivision AGA & Catweasel MK4+= Amazing ! My Master Miggies-Amiga1000 & AmigaONE X1000 ! mancave-ramblings
|
|
|
Re: Exodus The Last War patching : work in progress
|
Posted on: 1/21 17:42
#34
|
Home away from home 
Joined: 2006/11/20 16:26 Last Login
: Today 0:50
From Norway
Group:
Registered Users
|
@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.
|
|
|
Re: Exodus The Last War patching : work in progress
|
Posted on: 1/21 18:25
#35
|
Home away from home 
Joined: 2007/9/11 12:31 Last Login
: 6/22 18:37
From Russia
Group:
Registered Users
|
@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.
|
|
|
|
Re: Exodus The Last War patching : work in progress
|
Posted on: 1/21 19:28
#36
|
Home away from home 
Joined: 2006/11/20 16:26 Last Login
: Today 0:50
From Norway
Group:
Registered Users
|
@kas1e
Progress bar is broken, and credit screen.
|
(NutsAboutAmiga)
Basilisk II for AmigaOS4 AmigaInputAnywhere Excalibur and other tools and apps.
|
|
|
Re: Exodus The Last War patching : work in progress
|
Posted on: 1/21 19:49
#37
|
Home away from home 
Joined: 2007/9/11 12:31 Last Login
: 6/22 18:37
From Russia
Group:
Registered Users
|
@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.
|
|
|
|
Re: Exodus The Last War patching : work in progress
|
Posted on: 1/21 20:37
#38
|
Home away from home 
Joined: 2009/7/7 4:34 Last Login
: Today 3:08
From Man Cave, Canada
Group:
Registered Users
|
@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 Indivision AGA & Catweasel MK4+= Amazing ! My Master Miggies-Amiga1000 & AmigaONE X1000 ! mancave-ramblings
|
|
|
Re: Exodus The Last War patching : work in progress
|
Posted on: 1/21 20:40
#39
|
Home away from home 
Joined: 2006/11/20 16:26 Last Login
: Today 0:50
From Norway
Group:
Registered Users
|
@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 ;0522c: 2c79000262fa
CLR.L D5 ;05232: 4285
MOVE.W LAB_0A80_src_bytes_per_row,D5 ;05234: 3a390001f8c0
MULU D5,D1 ;0523a: c2c5
ANDI.W #$fffc,D0 ;0523c: 0240fffc
ADD.L D0,D1 ;05240: d280
ANDI.W #$fffc,D3 ;05242: 0243fffc
SUB.W D3,D5 ;05246: 9a43
LSR.W #2,D3 ;05248: e44b
MOVEA.L LAB_0A8B,A0 ;0524a: 20790001f8f8
BSR.W LAB_018C_LockBitMap ;05250: 6100002e
TST.L D0 ;05254: 4a80
BEQ.W LAB_018B_noLock ;05256: 67000026
MOVEA.L D0,A1 ;0525a: 2240
SUBQ.W #1,D4 ;0525c: 5344
BGE.W LAB_0188 ;0525e: 6c000004
MOVEQ #0,D4 ;05262: 7800
LAB_0188:
SUBQ.W #1,D3 ;05264: 5343
ADDA.L D1,A0 ;05266: d1c1
ADDA.L D1,A1 ;05268: d3c1
LAB_0189_outerloop:
MOVE.W D3,D0 ;0526a: 3003
LAB_018A_innerloop:
MOVE.L (A0)+,(A1)+ ;0526c: 22d8
DBF D0,LAB_018A_innerloop ;0526e: 51c8fffc
ADDA.W D5,A0 ;05272: d0c5 ---- next src ROW (add BytesPerRow)
ADDA.W D5,A1 ;05274: d2c5 ---- next dest ROW (add BytesPerRow)
DBF D4,LAB_0189_outerloop ;05276: 51ccfff2
BSR.W LAB_018E_UnLockBitMap ;0527a: 61000036
LAB_018B_noLock:
RTS ;0527e: 4e75
|
(NutsAboutAmiga)
Basilisk II for AmigaOS4 AmigaInputAnywhere Excalibur and other tools and apps.
|
|
|
Re: Exodus The Last War patching : work in progress
|
Posted on: 1/21 20:40
#40
|
Home away from home 
Joined: 2007/9/11 12:31 Last Login
: 6/22 18:37
From Russia
Group:
Registered Users
|
@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.
|
|
|
Currently Active Users Viewing This Thread:
1
(
0 members
and 1 Anonymous Users
)
|
|
|