Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
101 user(s) are online (59 user(s) are browsing Forums)

Members: 0
Guests: 101

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
@328gts

if you buy the downloadable version of the game, its in the ExodusISO.zip file, you find the files.

if you own the CD, you can rip it using cd-bruning tool,
or just run it from the cd maybe.

You need to copy the files from the cd to your HD before converting the files. or else it fails to convert the files.

I also struggled with the install process.
I got stcuk on CDDA stuff.


Edited by LiveForIt on 2022/1/21 21:24:53
Edited by LiveForIt on 2022/1/21 21:45:58
(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
@kas1e

there is tag list for LockBitMapTagList function..

LAB_0190_TagList:
    
DC.L    $84001007        ;052d6
    DC
.L    LAB_0191_baseaddr        ;052da000052e2
    DS
.L    1            ;052de
LAB_0191_baseaddr
:
    
DS.L    2            ;052e2


We can change that to include dest bytes per row.

LAB_0190_TagList:
    
DC.L    $84001007        ;LBMI_BASEADDRESS
    DC
.L    LockBaseAddr    ;
    
DC.L    $84001006        ;LBMI_BYTESPERROW
    DC
.L    LockBytesPerRow
    DC
.L    0            ;052de
LockBytesPerRow
:
    
DS.L    1    
LockBaseAddr
:
    
DS.L    2            ;052e2


With a few changes we only need one patch for all graphics cards.


Edited by LiveForIt on 2022/1/22 15:24:26
Edited by LiveForIt on 2022/1/22 15:25:06
(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
@kas1e

ah ok thanks! I was using my CD & not iso hence why I couldnt see that file.

also noticed an error in the read me file...."ExodusCovGFX_ENG" should be "ExodusConvGFX_ENG"

_______________________________
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
@LifeForIt
Probabaly code adaptation will be need it and not just change of taglist ?

And you mean to remove all the current fix all together ?

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Exodus The Last War patching : v0.1 patch on os4depot
Not too shy to talk
Not too shy to talk


See User information

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


See User information
@kas1e

this code:

LAB_019E:
    
JSR    LAB_0A39
    MOVEA
.L    LAB_0BC9,A0
    MOVE
.W    LAB_0BBE+2,D5
    BSR
.W    LAB_01A7    
    TST
.L    D0            
    BEQ
.W    LAB_01A0
    MOVEA
.L    D0,A1    
    
    move
.w d7,-(sp) ; I need another registerdunno if d7 is freeI'll store it on the stack
    move.w #(480-1),D7 ; 480 rows
LAB_OUTER:
    moveq #((640/4/4)-1),d5  ; we need 40*4 LONG-writes for one line, unrolled to 40 loops of 4 writes
LAB_019F:
    MOVE.L    (A0)+,(A1)+
    MOVE.L    (A0)+,(A1)+
    MOVE.L    (A0)+,(A1)+
    MOVE.L    (A0)+,(A1)+
    DBF    D5,LAB_019F
    ; here one line is done, now add our row padding
    adda.w #128,A1
    ; next line
    DBF D7, LAB_OUTER
    ; restore D7 from stack
    move.w (sp)+,d7
    
    BSR.W    LAB_01A9        ;051d8: 610000d8
    JSR    LAB_0A43        ;051dc: 4eb900018c56
    BRA.W    LAB_01A0        ;051e2: 60000002
LAB_01A0:
    RTS


is changed to:

LAB_019E:
    
JSR    LAB_0A39
    MOVEA
.L    LAB_0BC9,A0
    MOVE
.W    LAB_0BBE+2,D5
    BSR
.W    LAB_01A7   returns BaseAddress on D0
    
TST.L    D0            
    BEQ
.W    LAB_01A0

    move
.w d7,-(sp) ; I need another registerdunno if d7 is freeI'll store it on the stack
    move.l d6,-(sp)

    move.l LockBaseAddress,D0 ; D0 is temp, as we are doing some math on it.
    move.l LockBytesPerRow,D6 
    move.w #(480-1),D7 ; 480 rows

LAB_OUTER:
    moveq #((640/4/4)-1),d5  ; we need 40*4 LONG-writes for one line, unrolled to 40 loops of 4 writes

    MOVE.L    D0,A1   ; set A1 to start of the line.

LAB_019F:
    MOVE.L    (A0)+,(A1)+
    MOVE.L    (A0)+,(A1)+
    MOVE.L    (A0)+,(A1)+
    MOVE.L    (A0)+,(A1)+
    DBF    D5,LAB_019F

    ; move to next line add LockBytesPerRow to D0.
    ADD.L       D6,D0
    ; next line
    DBF D7, LAB_OUTER
    ; restore D7 from stack

    move.l (sp)+,d6
    move.w (sp)+,d7
    
    BSR.W    LAB_01A9        ;051d8: 610000d8
    JSR    LAB_0A43        ;051dc: 4eb900018c56
    BRA.W    LAB_01A0        ;051e2: 60000002
LAB_01A0:
    RTS


(Assuming you rename the labels.)

(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

tricky yes but I'm happy to report that I've got Exodus_TheLastWar running natively (no E-UAE) on my X1000 with music and sound effects working great thanks to you & kas1e and all involved!

Had to slow down the scroll speed to min. since was just too fast....big difference from playing on my A4000 with 060

_______________________________
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

Yes, will be bit faster, VBL is on AmigaOS4/AmigaONE is 60Hz, while on Amiga its typically 50Hz I believe. if Amiga games can’t keep up (cant update graphic in time) they drop down to 25fps, NTSC on Amiga is 60Hz.

Often timing is done by waiting for vertical blanking in the main loop, this means games like that never run faster than 60Hz (60 frames per second), if it can’t update graphic in time it takes to display the frame, then it wait for every other virtual blanking, this result in dropping frame rate down to 30 fps.

Simple timing like that major impact on multi player games, where one play can run 2 times as fast then other players.


Edited by LiveForIt on 2022/1/22 11:09:10
Edited by LiveForIt on 2022/1/22 11:11:16
Edited by LiveForIt on 2022/1/22 11:14:44
Edited by LiveForIt on 2022/1/22 11:22:28
(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
@kas1e

Fixes the progress bar, and credits.

LAB_0188:
    
MOVEA.L    LAB_0C43,A6        ;052342c790002630e

    move
.l    d0,d6        relocate x to d6

    MOVEA
.L    LAB_0A8D,A0        ;0525220790001f90c
    BSR
.W    proc_LockBitMapTags        ;05258: 6100002e
    TST
.L    D0            ;0525c4a80
    BEQ
.W    LAB_018C        ;0525e67000026

    MOVEA
.L    D0,A1            D0 is trashed here...

    
SUBQ.W    #1,D4            ;05264: 5344
    
BGE.W    LAB_0189        ;052666c000004
    MOVEQ    
#0,D4            ;0526a: 7800

LAB_0189:

    
ANDI.W    #$fffc,D6

    
CLR.L    D5            ;0523a4285
    MOVE
.W    LAB_0A82,D5        ;0523c3a390001f8d4

    move
.l    D1,D0
    MULU    D5
,D0
    ADD
.L    D6,D0
    ADDA
.L    D0,A0

    MOVE
.L    LockBytesPerRow,D0    D0=BPR
    MULU    D1
,D0                D0*=Y
    ADD
.L    D6,D0                D0+=X
    ADDA
.L    D0,A1            ;05270d3c1

    ANDI
.W    #$fffc,D3        ;0524a: 0243fffc
    
SUB.W    D3,D5            ;0524e9a43

    MOVE
.L    LockBytesPerRow,D6    D6=BPR
    SUB
.L    D3,D6
    LSR
.W    #2,D3            ;    D3/=4
    
SUBQ.W    #1,D3            ;0526c: 5343
LAB_018A:
    
MOVE.W    D3,D0            ;052723003

    MOVE
.L    #1,(A1)

LAB_018B:
    
MOVE.L    (A0)+,(A1)+        ;0527422d8
    DBF    D0
,LAB_018B        ;0527651c8fffc

    ADDA
.W    D5,A0            ;0527ad0c5
    ADDA
.W    D6,A1            ;0527cd2c5
    DBF    D4
,LAB_018A        ;0527e51ccfff2


    BSR
.W    proc_UnLockBitMap        ;05282: 61000036
LAB_018C
:
    
RTS                ;05286: 4e75


my patch, if anyone likes to try it.
only for HD/RX cards.

https://www.dropbox.com/s/kk8jwxkrikma ... dus_22_01_2021.patch?dl=0



Edited by LiveForIt on 2022/1/22 18:11:13
Edited by LiveForIt on 2022/1/22 18:13:39
Edited by LiveForIt on 2022/1/22 18:23:03
(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
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
Working good. The only major drawback is the 640x480 screen streched to 1920x1200 size looks blury. Is it possible to not to scale it up....with black borders o sth?

CD32/A500/A600/A600+Furia/A1200/A4000D+A2320+PiccoloSD64/Sam440 flex 800MHz RAM 1GB HD7750 128MB OS4.1 SBLive! ->
Go to top
Re: Exodus The Last War patching : work in progress
Home away from home
Home away from home


See User information
@mr2

We are only looking at bugs, but maybe it can be done.

(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top
Re: Exodus The Last War patching : v0.1 patch on os4depot
Home away from home
Home away from home


See User information
@LiveForIT
Thanks, will check it and add if all will be ok. Only the code you quote needs to be changed? Nothing else?

For now, will be interesting to understand why when CD-Audio is enabled everything "pauses" every 3 seconds. I can of course replace it with my own cd-player routines, but that kind of sucks to find all the places where things need to be replaced...



@mr2
Quote:

Working good. The only major drawback is the 640x480 screen stretched to 1920x1200 size looks blurry. Is it possible not to scale it up....with black borders o sth?


Hmm, that's strange, I mean Exodus scale nothing, you just need to choose 640x480 mode (for which Exodus is written in mind).

How you was able to scale it at all to 1920x1080? Just by choosing that video mode? If so it means os4's scale it.

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Exodus The Last War patching : v0.1 patch on os4depot
Home away from home
Home away from home


See User information
@kas1e

Only one rutine now use lockBytesPerRow.
(why the new patch only works on RX/HD)

The clear screen routine is also broken, but no one will notice, not a issue, too lazy to fix it.
(its possible it can produce some trach at end of screen)

(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top
Re: Exodus The Last War patching : v0.1 patch on os4depot
Home away from home
Home away from home


See User information
@lifeforit
Can you upload your source from which you made a patch, that will be easy for me to check what was changed, etc

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Exodus The Last War patching : v0.1 patch on os4depot
Home away from home
Home away from home


See User information
@kas1e

just decompile and compare labels are changed. That’s what I did.

(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top
Re: Exodus The Last War patching : v0.1 patch on os4depot
Home away from home
Home away from home


See User information
@LifeForit
No luck for just uploading your source to avoid doing unnecessary things?

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Exodus The Last War patching : v0.1 patch on os4depot
Home away from home
Home away from home


See User information
@kas1e

source diff between your patch and my patch

i decompiled your file like:

ira -a preproc exodus_file Exodus_hd_rx.asm

--- Exodus_hd_rx.asm    2022-01-22 21:18:58 
+++ Exodus.asm    2022-01-22 16:46:46 
@@ -5785,+5785,@@
     
JSR    LAB_0940        ;051a44eb900018b36
     MOVEA
.L    LAB_0A8D,A0        ;051aa20790001f90c
     MOVE
.W    LAB_0A83,D5        ;051b03a390001f8d6
-    BSR.W    LAB_018D        ;051b6610000d0
+    BSR.W    proc_LockBitMapTags        ;051b6610000d0
     TST
.L    D0            ;051ba4a80
     BEQ
.W    LAB_0186        ;051bc67000030
     MOVEA
.L    D0,A1            ;051c02240
@@ -5802,+5802,@@
     
ADDA.W    #$0080,A1        ;051d6: d2fc0080
     
DBF    D7,LAB_0184        ;051da51cfffec
     MOVE
.W    (A7)+,D7        ;051de3e1f
-    BSR.W    LAB_018F        ;051e0610000d8
+    BSR.W    proc_UnLockBitMap        ;051e0610000d8
     JSR    LAB_094A        
;051e44eb900018c6a
     BRA
.W    LAB_0186        ;051ea60000002
 LAB_0186
:
@@ -
5829,40 +5829,73 @@
     
MOVEM.L    (A7)+,D0-D3/D5-D7/A0-A7    ;0522a4cdfffef
     BSR
.W    LAB_0188        ;0522e61000004
     RTS                
;052324e75
+
+
+
 
LAB_0188:
     
MOVEA.L    LAB_0C43,A6        ;052342c790002630e
-    CLR.L    D5            ;0523a4285
-    MOVE.W    LAB_0A82,D5        ;0523c3a390001f8d4
-    MULU    D5,D1            ;05242c2c5
-    ANDI.W    #$fffc,D0        ;05244: 0240fffc
-    ADD.L    D0,D1            ;05248: d280
-    ANDI.W    #$fffc,D3        ;0524a: 0243fffc
-    SUB.W    D3,D5            ;0524e9a43
-    LSR.W    #2,D3            ;05250: e44b
+
+    
move.l    d0,d6        relocate x to d6
+
     
MOVEA.L    LAB_0A8D,A0        ;0525220790001f90c
-    BSR.W    LAB_018D        ;05258: 6100002e
+    BSR.W    proc_LockBitMapTags        ;05258: 6100002e
     TST
.L    D0            ;0525c4a80
     BEQ
.W    LAB_018C        ;0525e67000026
-    MOVEA.L    D0,A1            ;052622240
+
+    
MOVEA.L    D0,A1            D0 is trashed here...
+
     
SUBQ.W    #1,D4            ;05264: 5344
     
BGE.W    LAB_0189        ;052666c000004
     MOVEQ    
#0,D4            ;0526a: 7800
+
 
LAB_0189:
+
+    
ANDI.W    #$fffc,D6
+
+; ----- 
calc source pos
+
+    
CLR.L    D5            ;0523a4285
+    MOVE.W    LAB_0A82,D5        ;0523c3a390001f8d4
+
+    
move.l    D1,D0
+    MULU    D5,D0
+    ADD.L    D6,D0
+    ADDA.L    D0,A0
+
+; ----- 
calc start     
+
+    
MOVE.L    LockBytesPerRow,D0    D0=BPR
+    MULU    D1,D0                D0*=Y
+    ADD.L    D6,D0                D0+=X
+    ADDA.L    D0,A1            ;05270d3c1
+
+; ------ 
calc padding...
+
+    
ANDI.W    #$fffc,D3        ;0524a: 0243fffc
+    SUB.W    D3,D5            ;0524e9a43
+
+    
MOVE.L    LockBytesPerRow,D6    D6=BPR
+    SUB.L    D3,D6
+    LSR.W    #2,D3            ;    D3/=4
     
SUBQ.W    #1,D3            ;0526c: 5343
-    ADDA.L    D1,A0            ;0526ed1c1
-    ADDA.L    D1,A1            ;05270d3c1
 LAB_018A
:
     
MOVE.W    D3,D0            ;052723003
+
+    
MOVE.L    #1,(A1)
+
 
LAB_018B:
     
MOVE.L    (A0)+,(A1)+        ;0527422d8
     DBF    D0
,LAB_018B        ;0527651c8fffc
+
     
ADDA.W    D5,A0            ;0527ad0c5
-    ADDA.W    D5,A1            ;0527cd2c5
+    ADDA.W    D6,A1            ;0527cd2c5
     DBF    D4
,LAB_018A        ;0527e51ccfff2
-    BSR.W    LAB_018F        ;05282: 61000036
+
+
+    
BSR.W    proc_UnLockBitMap        ;05282: 61000036
 LAB_018C
:
     
RTS                ;05286: 4e75
-LAB_018D:
+
proc_LockBitMapTags:
     
MOVEM.L    D1/A0-A1/A6,-(A7)    ;05288: 48e740c2
     MOVEA
.L    #LAB_000A,A0        ;0528c: 207c0000015a
     
MOVEA.L    16(A0),A6        ;05292: 2c680010
@@ -5871,11 +5904,11 @@
     
JSR    -168(A6)        ;052a04eaeff58
     MOVE
.L    D0,LAB_0193        ;052a423c0000052f2
     BEQ
.W    LAB_018E        ;052aa67000008
-    MOVE.L    LAB_0192,D0        ;052ae2039000052ea
+    MOVE.L    LockBaseAddress,D0        ;052ae2039000052ea
 LAB_018E
:
     
MOVEM.L    (A7)+,D1/A0-A1/A6    ;052b44cdf4302
     RTS                
;052b84e75
-LAB_018F:
+
proc_UnLockBitMap:
     
MOVEM.L    D1/A0-A1/A6,-(A7)    ;052ba48e740c2
     MOVE
.L    LAB_0193,D0        ;052be2039000052f2
     BEQ
.W    LAB_0190        ;052c467000012
@@ -5888,+5921,13 @@
     
RTS                ;052dc4e75
 LAB_0191
:
     
DC.L    $84001007        ;052de
-    DC.L    LAB_0192        ;052e2000052ea
+    DC.L    LockBaseAddress        ;052e2000052ea
+    DC.L    $84001006        
+    DC.L    LockBytesPerRow    
     DS
.L    1            ;052e6
-LAB_0192:
+
LockBytesPerRow:
+    
DC.L 0
+LockBaseAddress:
     
DS.L    2            ;052ea
 LAB_0193
:
     
DS.L    1            ;052f2
@@ -9508,+9545,@@
     
MOVE.L    -32466(A5),D0        ;07eb8202d812e
     MOVEA
.L    D0,A6            ;07ebc2c40
     MOVEM
.L    (A7)+,D0-D7/A0-A5/A7    ;07ebe4cdfbfff
-    JSR    LAB_018D        ;07ec24eb900005288
+    JSR    proc_LockBitMapTags        ;07ec24eb900005288
     TST
.L    D0            ;07ec84a80
     BEQ
.W    LAB_02CF        ;07eca67000020
     MOVEA
.L    D0,A0            ;07ece2040
@@ -9521,+9558,@@
     
SUBQ.L    #1,D0            ;07ee6: 5380
     
BNE.W    LAB_02CE        ;07ee86600fff6
 LAB_02CF
:
-    
JSR    LAB_018F        ;07eec4eb9000052ba
+    JSR    proc_UnLockBitMap        ;07eec4eb9000052ba
     RTS                
;07ef24e75
 LAB_02D0
:
     
MOVE.W    0(A0),D0        ;07ef430280000


apply patch like

patch < new_patch.diff



Edited by LiveForIt on 2022/1/22 19:39:24
Edited by LiveForIt on 2022/1/22 19:40:07
(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top
Re: Exodus The Last War patching : v0.1 patch on os4depot
Not too shy to talk
Not too shy to talk


See User information
@kas1e

Quote:
How you was able to scale it at all to 1920x1080? Just by choosing that video mode? If so it means os4's scale it.


I mean, I choose 640x480 but monitor native resolution is 1920x1200. So to cover the whole area three monitor pixels are used to show one game pixel. That makes it blury. I thought about using smaller part of the monitor. I don't know if I explained it well .

CD32/A500/A600/A600+Furia/A1200/A4000D+A2320+PiccoloSD64/Sam440 flex 800MHz RAM 1GB HD7750 128MB OS4.1 SBLive! ->
Go to top
Re: Exodus The Last War patching : v0.1 patch on os4depot
Home away from home
Home away from home


See User information
@LifeForIt
Thanks! Will add that to the next version of patch. Maybe you can have a look at other things in the "TODO" from the readme? Any from the list is good

@mr2
Ah, you then use some monitor which does autoscaling to 1920x1080 on its own? Probably that those modern monitors which resize any resolution to the 1920x1080 and can't support proper 640x480? If so there is probably nothing we can do about it.

All the other "640x480" stuff autoscalles the same, right ?

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Exodus The Last War patching : v0.1 patch on os4depot
Not too shy to talk
Not too shy to talk


See User information
@kas1e

Yeah, all 640x480 look the same...all above are scrambled. Nevermind, its OK as it is now :)

CD32/A500/A600/A600+Furia/A1200/A4000D+A2320+PiccoloSD64/Sam440 flex 800MHz RAM 1GB HD7750 128MB OS4.1 SBLive! ->
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