Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
41 user(s) are online (29 user(s) are browsing Forums)

Members: 1
Guests: 40

jarokuczi, more...

Support us!

Headlines

 
  Register To Post  

« 1 2 3 (4) 5 »
Re: Exodus The Last War patching : v0.1 patch on os4depot
Just can't stay away
Just can't stay away


See User information
@mr2

Many monitors have a setting to select autoscaling on or off, have you checked whether yours has?

Best regards,

Niels

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
Tested your patch, yeah, works, included.

Now need to understand how to make the mouse be working from the start to avoid doing amiga+m clicking on WB, and then amiga+m back to the game. Maybe it is possible to somehow disable/enable the mouse from an active screen? Or maybe when they set their pointer, they simply didn't do something which is necessary, and OS3 just eat it before, while os4 does not now.

Also interesting is it possible to change some tags for OpenScreen, so when we do scroll the workbench window down, we will see the game's screen.

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

I can see mouse here, but I’m not a beta version of AmigaOS, but the mouse use black color, maybe not the right color?

Quote:
Also interesting is it possible to change some tags for OpenScreen, so when we do scroll the workbench window down, we will see the game's screen.


You do realize that require a true color screen, so you need to convert 8bit image to 32bit or 16bit on the fly, that can slow down the game a bit.

unless you know some shader magic code, that do it on the GPU

it can bad for sam440 owners and A1 XE/SE/Micro users.

Anyway allowing people choice larger screens (and centering the graphics) so it does not get stretched can be nice, for everyone.

(We need fix bpr the correct why all places to make that work, not type in magic numbers )


Edited by LiveForIt on 2022/1/23 12:48:44
Edited by LiveForIt on 2022/1/23 12:51:37
Edited by LiveForIt on 2022/1/23 12:53: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
Home away from home
Home away from home


See User information
@LiveForit
Quote:

I can see the mouse here, but I’m not a beta version of AmigaOS, but the mouse uses black color, maybe not the right color?


Sometimes i also can see "wrong" black mouse. Try to switch to workbench back, click on it, and then switch back to the game (And do that all in the menu) and you will see what the cursor should look like.

Quote:

You do realize that require a true color screen, so you need to convert 8bit image to 32bit or 16bit on the fly, which can slow down the game a bit.


Mmm, no, i didn't mean convert to 32 or 16. There are a lot of games/apps/demos, written for the 8bit screen, but i can see them when scrolling down the workbench screen. Or maybe it's different 8bit screens?

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

maybe the mouse has be changed, after the palette is set.

(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
Yes sure it was changed, you can see in the code for SetPointer() function, there they set their own mouse pointer (the same in Foundation too). Just in both and in Exodus and in Foundation, it makes cursor be or not visibly at all from the run, or being "black". Switch to WB, click on it, and switch back to the game and click - make mouse be fine, of their look as they set and all fine.

Just want it to works from the beginning, without needing to switch to wb.

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
@nbache

I didn't even think about it. There is an "Auto" button but it does nothing. The OSD menu shows that something can "scale" but is inactive so I think this model does not have such a function. Thanks anyway, you were close :)

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
@kas1e

fixes all places where BytesPerRow is wrong.
works now in 800x600.

--- Exodus_hd_rx.asm    2022-01-22 21:18:58 
+++ Exodus.asm    2022-01-25 18:45:01 
@@ -5781,32 +5781,45 @@
 
LAB_0182:
     
MOVEM.L    (A7)+,A5-A6        ;0519e4cdf6000
     RTS                
;051a24e75
+
 
LAB_0183:
     
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
     MOVE
.W    D7,-(A7)        ;051c23f07
+
+    
MOVE.L    LockBytesPerRow,D0
+    SUB.L    #640,D0
+
     
MOVE.W    #$01df,D7        ;051c4: 3e3c01df
+
 
LAB_0184:
+
     
MOVEQ    #39,D5            ;051c8: 7a27
+
 
LAB_0185:
     
MOVE.L    (A0)+,(A1)+        ;051ca22d8
     MOVE
.L    (A0)+,(A1)+        ;051cc22d8
     MOVE
.L    (A0)+,(A1)+        ;051ce22d8
     MOVE
.L    (A0)+,(A1)+        ;051d022d8
     DBF    D5
,LAB_0185        ;051d251cdfff6
-    ADDA.W    #$0080,A1        ;051d6: d2fc0080
+
+    
ADDA.W    D0,A1        ;051d6d2fc0080
     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
:
     
RTS                ;051ee4e75
+
+
 
LAB_0187:
     
MOVEM.L    D1-D7/A0-A7,-(A7)    ;051f048e77fff
     MOVE
.W    -32382(A5),D0        ;051f4302d8182
@@ -5829,40 +5842,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 +5917,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,+5934,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
@@ -9503,17 +9553,17 @@
     
MOVEM.L    D0-D4/A0-A4,-(A6)    ;07eaa48e6f8f8
     DBF    D7
,LAB_02CC        ;07eae51cffffa
     RTS                
;07eb24e75
+
 
LAB_02CD:
     
MOVEM.L    D0-D7/A0-A5/A7,-(A7)    ;07eb448e7fffd
     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
-    CLR.L    D0            ;07ed04280
-    MOVE.W    LAB_0A82,D0        ;07ed230390001f8d4
+    MOVE.L    LockBytesPerRow,D0        ;07ed230390001f8d4
     MULU    LAB_0A83
,D0        ;07ed8c0f90001f8d6
     LSR
.L    #2,D0            ;07ede: e488
 
LAB_02CE:
@@ -
9521,+9571,@@
     
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
     MOVE
.W    2(A0),D1        ;07ef832280002

(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
@kas1e

If I SetPointer after _LVOLoadRGB32, i get the correct colors.

I think this is more a AmigaOS4.1 bug.

--- Exodus_hd_rx.asm    2022-01-22 21:18:58 
+++ Exodus.asm    2022-01-25 22:09:21 
@@ -6,+6,@@
 
COPJMP1        EQU    $DFF088
 DMACON        EQU    $DFF096
 
-
-
+
_LVOSetPointer        EQU    -270
+_LVOClearPointer    EQU    -60
+_LVOLoadRGB32    EQU    -882
 
     SECTION S_0
,CODE
 
@@ -36,27 +37,27 @@
     
MOVE.L    D0,-32716(A5)        ;0006c2b408034
     BRA
.W    LAB_000C        ;00070600000fc
 LAB_0000
:
-    
LEA    LAB_0006(PC),A1        ;0007443fa0092
+    LEA    lib_dos(PC),A1        ;0007443fa0092
     RTS                
;00078: 4e75
 LAB_0001
:
-    
LEA    LAB_0007(PC),A1        ;0007a43fa0098
+    LEA    lib_intuition(PC),A1        ;0007a43fa0098
     RTS                
;0007e4e75
 LAB_0002
:
-    
LEA    LAB_0008(PC),A1        ;00080: 43fa00a4
+    LEA    lib_graphics(PC),A1        ;00080: 43fa00a4
     RTS                
;00084: 4e75
     DC
.L    $43fa00af,$4e7543fa,$00b54e75 ;00086
 
LAB_0003:
-    
LEA    LAB_000A(PC),A4        ;00092: 49fa00c6
+    LEA    libBaseArray(PC),A4        ;00092: 49fa00c6
     MOVEA
.L    ABSEXECBASE,A6        ;00096: 2c7900000004
-    LEA    LAB_0008(PC),A1        ;0009c43fa0088
+    LEA    lib_graphics(PC),A1        ;0009c43fa0088
     MOVEQ    
#0,D0            ;000a0: 7000
     
JSR    -552(A6)        ;000a24eaefdd8
     MOVE
.L    D0,0(A4)        ;000a629400000
-    LEA    LAB_0007(PC),A1        ;000aa43fa0068
+    LEA    lib_intuition(PC),A1        ;000aa43fa0068
     MOVEQ    
#0,D0            ;000ae: 7000
     
JSR    -552(A6)        ;000b04eaefdd8
     MOVE
.L    D0,4(A4)        ;000b429400004
-    LEA    LAB_0006(PC),A1        ;000b843fa004e
+    LEA    lib_dos(PC),A1        ;000b843fa004e
     MOVEQ    
#0,D0            ;000bc: 7000
     
JSR    -552(A6)        ;000be4eaefdd8
     MOVE
.L    D0,8(A4)        ;000c229400008
@@ -67,+68,@@
     
RTS                ;000d44e75
 LAB_0004
:
     
MOVEA.L    ABSEXECBASE,A6        ;000d62c7900000004
-    LEA    LAB_000A(PC),A4        ;000dc49fa007c
+    LEA    libBaseArray(PC),A4        ;000dc49fa007c
     MOVEA
.L    0(A4),A1        ;000e0226c0000
     JSR    
-414(A6)        ;000e44eaefe62
     MOVEA
.L    4(A4),A1        ;000e8226c0004
@@ -78,18 +79,18 @@
     
JSR    -414(A6)        ;000fc4eaefe62
     RTS                
;001004e75
 LAB_0005
:
-    
LEA    LAB_000A(PC),A0        ;0010241fa0056
+    LEA    libBaseArray(PC),A0        ;0010241fa0056
     RTS                
;001064e75
-LAB_0006:
+
lib_dos:
     ;00108
     ;
DC.B    $64,$6f,$73,$2e,$6c,$69,$62,$72,$61,$72,$79,$00
     DC
.B    "dos.library",0
-LAB_0007:
+
lib_intuition:
     ;
00114
     
;DC.B    $69,$6e,$74,$75,$69,$74,$69,$6f,$6e,$2e,$6c,$69,$62,$72,$61,$72
     
;DC.B    $79,$00
     DC
.B    "intuition.library",0
-LAB_0008:
+
lib_graphics:
     ;
00126
     
;DC.B    $67,$72,$61,$70,$68,$69,$63,$73,$2e,$6c,$69,$62,$72,$61,$72,$79
     
;DC.B    $00,$61,$73,$6c,$2e,$6c,$69,$62,$72,$61,$72,$79,$00
@@ -100,10 +101,13 @@
     ;
DC.B    $63,$79,$62,$65,$72,$67,$72,$61,$70,$68,$69,$63,$73,$2e,$6c,$69
     
;DC.B    $62,$72,$61,$72,$79,$00,$00
     DC
.B    "cybergraphics.library",0,0
-LAB_000A:
-    
DS.L    1            ;0015a
-LAB_000B:
-    
DS.L    4            ;0015e
+libBaseArray:
+    
DC.L    0            // +0 GraphicsBase.
+IntuitionBase:
+    
DC.L 0            // +4 IntuitionBase
+    DC.L 0            // +8 DosBase
+    DC.L 0            // +12
+    DC.L 0            // +16
 
LAB_000C:
     
MOVE.L    #$00000004,D0        ;0016e: 203c00000004
     
MOVE.L    #$00000063,D1        ;00174: 223c00000063
@@ -5781,32 +5785,45 @@
 
LAB_0182:
     
MOVEM.L    (A7)+,A5-A6        ;0519e4cdf6000
     RTS                
;051a24e75
+
 
LAB_0183:
     
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
     MOVE
.W    D7,-(A7)        ;051c23f07
+
+    
MOVE.L    LockBytesPerRow,D0
+    SUB.L    #640,D0
+
     
MOVE.W    #$01df,D7        ;051c4: 3e3c01df
+
 
LAB_0184:
+
     
MOVEQ    #39,D5            ;051c8: 7a27
+
 
LAB_0185:
     
MOVE.L    (A0)+,(A1)+        ;051ca22d8
     MOVE
.L    (A0)+,(A1)+        ;051cc22d8
     MOVE
.L    (A0)+,(A1)+        ;051ce22d8
     MOVE
.L    (A0)+,(A1)+        ;051d022d8
     DBF    D5
,LAB_0185        ;051d251cdfff6
-    ADDA.W    #$0080,A1        ;051d6: d2fc0080
+
+    
ADDA.W    D0,A1        ;051d6d2fc0080
     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
:
     
RTS                ;051ee4e75
+
+
 
LAB_0187:
     
MOVEM.L    D1-D7/A0-A7,-(A7)    ;051f048e77fff
     MOVE
.W    -32382(A5),D0        ;051f4302d8182
@@ -5829,57 +5846,90 @@
     
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    #libBaseArray,A0        ;0528c: 207c0000015a
     
MOVEA.L    16(A0),A6        ;05292: 2c680010
     MOVEA
.L    LAB_0A86,A0        ;05296: 20790001f8e8
     LEA    LAB_0191
(PC),A1        ;0529c43fa0040
     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
-    MOVEA.L    #LAB_000A,A0        ;052c8: 207c0000015a
+    MOVEA.L    #libBaseArray,A0        ;052c8: 207c0000015a
     
MOVEA.L    16(A0),A6        ;052ce2c680010
     MOVEA
.L    D0,A0            ;052d22040
     JSR    
-174(A6)        ;052d44eaeff52
@@ -5888,+5938,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
@@ -9503,17 +9557,17 @@
     
MOVEM.L    D0-D4/A0-A4,-(A6)    ;07eaa48e6f8f8
     DBF    D7
,LAB_02CC        ;07eae51cffffa
     RTS                
;07eb24e75
+
 
LAB_02CD:
     
MOVEM.L    D0-D7/A0-A5/A7,-(A7)    ;07eb448e7fffd
     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
-    CLR.L    D0            ;07ed04280
-    MOVE.W    LAB_0A82,D0        ;07ed230390001f8d4
+    MOVE.L    LockBytesPerRow,D0        ;07ed230390001f8d4
     MULU    LAB_0A83
,D0        ;07ed8c0f90001f8d6
     LSR
.L    #2,D0            ;07ede: e488
 
LAB_02CE:
@@ -
9521,+9575,@@
     
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
     MOVE
.W    2(A0),D1        ;07ef832280002
@@ -9564,16 +9619,21 @@
     
DBF    D2,LAB_02D4        ;07f5451caffec
 LAB_02D6
:
     
RTS                ;07f584e75
-LAB_02D7:
-    
MOVE.W    LAB_02DE,D0        ;07f5a30390000800e
+
+
+
+
proc_SetPointer:        ;         ArgsD6 Pointer Nr ,D7 SetPalette
+    MOVE.W    LAB_02DE,D0        ;07f5a30390000800e        // Check if set before...
     
CMP.W    D6,D0            ;07f60b046
     BEQ
.W    LAB_02DB        ;07f6267000094
 LAB_02D8
:
     
MOVE.W    D6,LAB_02DE        ;07f6633c60000800e
-    MOVEA.L    LAB_0A88,A1        ;07f6c22790001f8f8
+
+    
MOVEA.L    LAB_0A88,A1        ;07f6c22790001f8f8        // D6 can be pointer nr.
     
ADDA.W    #$0008,A1        ;07f72: d2fc0008
     
MULU    #$0084,D6        ;07f76: ccfc0084
     
ADDA.L    D6,A1            ;07f7ad3c6
+
     
MOVEA.L    A1,A4            ;07f7c2849
     CLR
.L    D0            ;07f7e4280
     MOVE
.W    2(A1),D0        ;07f8030290002
@@ -9587,20 +9647,27 @@
     
MOVE.W    6(A1),D3        ;07f9636290006
     NEG
.L    D3            ;07f9a4483
     ADDA
.L    #$00000034,A1        ;07f9c: d3fc00000034
-    MOVEA.L    LAB_0A87,A0        ;07fa220790001f8f0
-    MOVEA.L    LAB_000B,A6        ;07fa82c790000015e
+    MOVEA.L    window,A0        ;07fa220790001f8f0
+
+    
MOVEA.L    IntuitionBase,A6        ;07fa82c790000015e
     TST
.B    LAB_0C2D        ;07fae4a39000260a4
     BNE
.W    LAB_02D9        ;07fb46600001a
+
     
MOVE.L    A0,-(A7)        ;07fb82f08
     LEA    LAB_02DF
(PC),A0        ;07fba41fa0056
     MOVE
.W    (A0),D6            ;07fbe3c10
     MOVE
.W    #$0001,(A0)        ;07fc0: 30bc0001
     
MOVEA.L    (A7)+,A0        ;07fc4205f
+
     
TST.W    D6            ;07fc64a46
     BEQ
.W    LAB_02D9        ;07fc867000006
     BRA
.W    LAB_02DA        ;07fcc60000006
+
 
LAB_02D9:
-    
JSR    -270(A6)        ;07fd04eaefef2
+
+    ; 
A0=WindowA1=PointerD0=HeightD1=WidthD2=XOffsetD3=YOffset
+    JSR    _LVOSetPointer(A6)        ;07fd04eaefef2
+
 
LAB_02DA:
     
TST.W    D7            ;07fd44a47
     BEQ
.W    LAB_02DB        ;07fd667000020
@@ -9608,10 +9675,11 @@
     
ADDA.L    #$0000002c,A0        ;07fe0: d1fc0000002c
     
MOVEA.L    A4,A1            ;07fe6224c
     ADDA
.L    #$00000008,A1        ;07fe8: d3fc00000008
-    MOVEA.L    LAB_000A,A6        ;07fee2c790000015a
-    JSR    -882(A6)        ;07ff44eaefc8e
+    MOVEA.L    libBaseArray,A6        ;07fee2c790000015a
+    JSR    _LVOLoadRGB32(A6)        ;07ff44eaefc8e
 LAB_02DB
:
     
RTS                ;07ff84e75
+
 
LAB_02DC:
     
MOVEQ    #1,D6            ;07ffa: 7c01
     
MOVEQ    #0,D7            ;07ffc: 7e00
@@ -17711,+17779,@@
 
LAB_060A:
     
MOVEM.L    D0-D7/A0-A6,-(A7)    ;1024048e7fffe
     JSR    LAB_0005        
;102444eb900000102
-    MOVEA.L    0(A0),A6        ;1024a2c680000
+    MOVEA.L    0(A0),A6        GraphicsBase
     SUBQ
.W    #1,D2            ;1024e: 5342
 
LAB_060B:
     
JSR    -270(A6)        ;102504eaefef2
@@ -17840,+17908,@@
     
MOVE.L    56(A0),D1        ;104ce22280038
     CMP
.L    D0,D1            ;104d2b280
     BNE
.W    LAB_061E        ;104d466000098
-    MOVEA.L    LAB_0A87,A1        ;104d822790001f8f0
+    MOVEA.L    window,A1        ;104d822790001f8f0
     MOVEA
.L    86(A1),A0        ;104de20690056
     MOVEA
.L    ABSEXECBASE,A6        ;104e22c7900000004
     JSR    
-372(A6)        ;104e84eaefe8c
@@ -28177,+28245,@@
 
LAB_0955:
     
JSR    LAB_0958        ;18efc4eb900018f84
     RTS                
;18f024e75
+
 
LAB_0956:
     
MOVEM.L    D1-D7/A0-A7,-(A7)    ;18f0448e77fff
     MOVE
.W    -32212(A5),D0        ;18f08302d822c
@@ -28226,12 +28295,25 @@
     
MOVE.L    D1,4(A0)        ;18f7a21410004
     MOVE
.L    D2,8(A0)        ;18f7e21420008
     RTS                
;18f824e75
+
 
LAB_0958:
     
MOVEA.L    LAB_0A8F,A0        ;18f8420790001f930
     LEA    LAB_095D
(PC),A1        ;18f8a43fa00b0
-    MOVEA.L    LAB_000A,A6        ;18f8e2c790000015a
-    JSR    -882(A6)        ;18f944eaefc8e
+    MOVEA.L    libBaseArray,A6        ;18f8e2c790000015a
+    JSR    _LVOLoadRGB32(A6)        ;18f944eaefc8e
+    MOVEM.L    D0-D2/D4-D7/A0-A7,-(A7)    ;18f3248e7efff
+    MOVE.W    LAB_02DE,D6        check if pointer was set before.
+    
TST        D6
+    BEQ    .no_pointer
+    MOVE.W    #$0000,LAB_02DE    ; we force set pointer again.. 
+    ; D6 is the image in use.
+    
MOVE.L    #0,D7
+    JSR proc_SetPointer
+.no_pointer
+    MOVEM.L    (A7)+,D0-D2/D4-D7/A0-A7    ;18f424cdffff7
+
     
RTS                ;18f984e75
+
 
LAB_0959:
     
MOVEM.L    D0-D7/A1-A7,-(A7)    ;18f9a48e7ff7f
     MOVE
.L    -32446(A5),D0        ;18f9e202d8142
@@ -33753,+33835,@@
     
MOVE.L    #$00000000,D2        ;1efa2: 243c00000000
     
MOVEA.L    D6,A6            ;1efa82c46
     JSR    
-756(A6)        ;1efaa4eaefd0c
-    MOVEA.L    #LAB_000A,A4        ;1efae: 287c0000015a
+    MOVEA.L    #libBaseArray,A4        ;1efae: 287c0000015a
     
TST.L    16(A4)            ;1efb44aac0010
     BEQ
.W    LAB_0A5E        ;1efb867000012
     MOVEA
.L    16(A4),A6        ;1efbc2c6c0010
@@ -34267,+34349,@@
     
LEA    LAB_0A82(PC),A4        ;1f6e849fa01ea
     LEA    LAB_0A76
(PC),A1        ;1f6ec43fa00a6
     MOVE
.L    16(A4),4(A1)        ;1f6f0236c00100004
-    MOVEA.L    LAB_000B,A6        ;1f6f62c790000015e
+    MOVEA.L    IntuitionBase,A6        ;1f6f62c790000015e
     SUBA
.L    A0,A0            ;1f6fc91c8
     JSR    
-606(A6)        ;1f6fe4eaefda2
     MOVE
.L    D0,28(A4)        ;1f7022940001c
@@ -34336,18 +34418,18 @@
     
BEQ.W    LAB_0A7E        ;1f84a67000008
     JSR    LAB_095B        
;1f84e4eb900018fda
 LAB_0A7E
:
-    
MOVEA.L    LAB_000B,A6        ;1f8542c790000015e
+    MOVEA.L    IntuitionBase,A6        ;1f8542c790000015e
     MOVE
.W    LAB_0A89,D0        ;1f85a30390001f8fe
     BEQ
.W    LAB_0A7F        ;1f86067000014
-    MOVEA.L    LAB_0A87,A0        ;1f86420790001f8f0
-    JSR    -60(A6)            ;1f86a4eaeffc4
+    MOVEA.L    window,A0        ;1f86420790001f8f0
+    JSR    _LVOClearPointer(A6)            ;1f86a4eaeffc4
     MOVE
.W    #$0000,LAB_0A89        ;1f86e: 33fc00000001f8fe
 
LAB_0A7F:
-    
MOVEA.L    LAB_0A87,A0        ;1f87620790001f8f0
+    MOVEA.L    window,A0        ;1f87620790001f8f0
     MOVE
.L    A0,D0            ;1f87c2008
     BEQ
.W    LAB_0A80        ;1f87e67000010
     JSR    
-72(A6)            ;1f8824eaeffb8
-    MOVE.L    #$00000000,LAB_0A87    ;1f886: 23fc000000000001f8f0
+    MOVE.L    #$00000000,window    ;1f886: 23fc000000000001f8f0
 
LAB_0A80:
     
MOVEQ    #3,D0            ;1f890: 7003
     
MOVE.L    -32500(A5),D1        ;1f892222d810c
@@ -34376,+34458,@@
     
DS.L    1            ;1f8e4
 LAB_0A86
:
     
DS.L    2            ;1f8e8
-LAB_0A87:
+
window:
     
DS.L    2            ;1f8f0
 LAB_0A88
:
     
DS.L    1            ;1f8f8
@@ -34452,+34534,@@
     
RTS                ;1f9ec4e75
 LAB_0A93
:
     
JSR    LAB_0A94        ;1f9ee4eb90001fa0a
-    MOVEA.L    #LAB_000A,A4        ;1f9f4: 287c0000015a
+    MOVEA.L    #libBaseArray,A4        ;1f9f4: 287c0000015a
     
MOVEA.L    0(A4),A6        ;1f9fa2c6c0000
     MOVEA
.L    LAB_0A8F,A0        ;1f9fe20790001f930
     JSR    
-402(A6)        ;1fa044eaefe6e
@@ -42127,+42209,@@
 
LAB_0C2A:
     
MOVE.W    D1,23310(A6)        ;2608c3d415b0e
     MOVEQ    
#1,D7            ;26090: 7e01
-    JSR    LAB_02D7        ;260924eb900007f5a
+    JSR    proc_SetPointer    
     BRA
.W    LAB_0C2C        ;2609860000008
 LAB_0C2B
:
     
SUBQ.W    #1,D0            ;2609c: 5340
@@ -42402,+42484,@@
     ;
DC.B    $67,$72,$61,$70,$68,$69,$63,$73,$2e,$6c,$69,$62,$72,$61,$72,$79
     
;DC.B    $00,$00
     DC
.B    "graphics.library",0,0
-LAB_0C57:
+
GraphicsBase2:
     
DS.L    1            ;264ac
 LAB_0C58
:
     ;
264b0
@@ -42462,+42544,@@
     
TST.W    LAB_0C5E        ;265ca4a79000265be
     BNE
.W    LAB_0C60        ;265d06600003e
     MOVEM
.L    D0-D1/A0-A1/A6,-(A7)    ;265d448e7c0c2
-    MOVEA.L    LAB_0C57(PC),A6        ;265d82c7afed2
+    MOVEA.L    GraphicsBase2(PC),A6        ;265d82c7afed2
     MOVE
.W    #$01a0,DMACON        ;265dc: 33fc01a000dff096
     
JSR    -270(A6)        ;265e44eaefef2
     JSR    
-270(A6)        ;265e84eaefef2
@@ -42488,+42570,@@
     
BEQ.W    LAB_0C62        ;2664867000018
     MOVEM
.L    D0-D1/A0-A1/A6,-(A7)    ;2664c48e7c0c2
     SF    LAB_0C54        
;2665051f900026494
-    MOVEA.L    LAB_0C57(PC),A6        ;266562c7afe54
+    MOVEA.L    GraphicsBase2(PC),A6        ;266562c7afe54
     JSR    
-462(A6)        ;2665a4eaefe32
     MOVEM
.L    (A7)+,D0-D1/A0-A1/A6    ;2665e4cdf4303
 LAB_0C62
:
@@ -
42533,+42615,@@
     
MOVE.W    D0,LAB_0C50        ;2672c33c00002648c
     LEA    LAB_0C56
(PC),A1        ;2673243fafd66
     JSR    
-408(A6)        ;267364eaefe68
-    MOVE.L    D0,LAB_0C57        ;2673a23c0000264ac
+    MOVE.L    D0,GraphicsBase2        ;2673a23c0000264ac
     MOVEA
.L    D0,A0            ;267402040
     BTST    
#0,207(A0)        ;26742: 0828000000cf
     
SEQ    D0            ;2674857c0


Edited by LiveForIt on 2022/1/25 20:30:30
(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
To what version of binary that patch is? Original Exodus one, or that a binary after patch from os4depot applied?

I just tried to binary which just patched by patch from os4depot, which i disassembly like:

Quote:

ira -a -preproc ExoodusTLW_V21 Exodus_hd_rx.asm


Ira which I use is an os4 native one, V2.09 (06.03.18).

And then

Quote:

patch < new_patch.diff



And have that:

Quote:

3/0.Work:disas> patch < new_patch.diff
(Stripping trailing CRs from patch.)
patching file Exodus_hd_rx.asm
Hunk #1 succeeded at 6 with fuzz 2.
Hunk #2 FAILED at 37.
Hunk #3 FAILED at 68.
Hunk #4 FAILED at 79.
Hunk #5 FAILED at 101.
Hunk #6 FAILED at 5782.
Hunk #7 FAILED at 5830.
Hunk #8 FAILED at 5889.
Hunk #9 FAILED at 9504.
Hunk #10 FAILED at 9522.
Hunk #11 FAILED at 9565.
Hunk #12 FAILED at 9588.
Hunk #13 FAILED at 9609.
Hunk #14 FAILED at 17712.
Hunk #15 FAILED at 17841.
Hunk #16 FAILED at 28178.
Hunk #17 FAILED at 28227.
Hunk #18 FAILED at 33754.
Hunk #19 FAILED at 34268.
Hunk #20 FAILED at 34337.
Hunk #21 FAILED at 34377.
Hunk #22 FAILED at 34453.
Hunk #23 FAILED at 42128.
Hunk #24 FAILED at 42403.
Hunk #25 FAILED at 42463.
Hunk #26 FAILED at 42489.
Hunk #27 FAILED at 42534.
26 out of 27 hunks FAILED -- saving rejects to file Exodus_hd_rx.asm.rej


Or that a patch for the original binary of exodus and their last official update one?

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

you have same version of ira as me.

gpatch ExoodusTLW_V21 ExodusTLW_V32_HR_RX.Patch Exodus_hd_rx
ira -a -preproc Exodus_hd_rx Exodus_hd_rx.asm
patch -o Exodus_new.asm < Exodus_patch.diff

only use the last patch...


Edited by LiveForIt on 2022/1/26 21:41:09
Edited by LiveForIt on 2022/1/26 22:13:47
(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
Yes, i use the latest one of course, and just fully repeat your steps now: the same failings. I fear that when i just copy+paste your patch from amigans it kills tabs and replaces them with spaces or something of that sort.

Can you recheck from your side that it surely works as you suggest, and, if yes, can you upload your diff somewhere to avoid those issues with tabs/spaces?


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

gnu patch 2.5.4 worked for me..

http://os4depot.net/index.php?function=uploads

(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
I use this one http://os4depot.net/?function=showfil ... tility/filetool/patch.lha

Your one simple crashes when i tried to apply your diff in my_vprintf().

As i say, the issue does probably not patch command, but the fact that when you insert your diff to the forum, forum converts all tabs to the spaces making .diff be broken.

Can you upload (pretty please) just your .diff somewhere, and not on the forum post? Dropbox or something? Or if you can send on kas1e@yandex.ru. So we will not lose our time on that anymore.

For sake of tests, and just to be 100% sure, you can try it yourself: just copy your latest patch from a forum via mark + copy (exactly like that, not use your patch from HDD) and try
to apply a patch by commands you type

edit: and not that it matters much, but your commands are full of typos: Exoodus (2 'o' ), V32 (should be v21), HR (should be 'HD'), etc. I of course change it all, just curious if you do not mess something else :)

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

e-mail is sent..

(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
Yeah, got it, thanks!

Builds fine, and can choose any screen mode now indeed (while it still renders in 640x480 of course). But, issues with the cursor are still there. Nothing changes in that regard, it is still or black on running, or no cursor at all and need to press amiga+m, click on wb, and switch to screen back.

But i think i know what caused this: "Force intuition pointer" if set in the preference, we have then that issue. And we have it set, because without, but with CDAA music enabled, mouse cursor the same pauses every 3 seconds as the whole gameplay.

Probably Napalm and Foundation uses something of that sort if they bugs the same.

We need to find why everything pauses every 3 seconds when CDDA is playing, then an issue with the cursor may disappear as well, as we will just not use "forced intuition pointer". Through that will not fix Napalm and Foundation of course in that regards ..

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

hemmm. I don't have the pause problem on X1000..

(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
Pause is exactly when CDDA music is enabled and works. Only then. With CDDA disabled no pauses.

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

what is a none intuition pointer? is that like poking the sprite register? or poking the copperlist?

(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
If i know :)

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-2024 The XOOPS Project