English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   Coders. Releases (https://eab.abime.net/forumdisplay.php?f=115)
-   -   FPSE 10 WarpOS (https://eab.abime.net/showthread.php?t=116625)

Cowcat 05 January 2024 12:00

FPSE 10 WarpOS
 
1 Attachment(s)
This is my experimental/lite version of Amidog's Psx emulator.


What it has: Faster interpreter code and finally sound after all these years.

Dll plugins are not coded for this (lite) version because this is still a hack.

COMPILER option still doesn't work for real Amigas/Sonnet library.

Lots to do for the missing 3D Hardware, Controller, GUI, etc.... but seems to work.

BULI 05 January 2024 13:13

Quote:

Originally Posted by Cowcat (Post 1662280)
This is my experimental/lite version of Amidog's Psx emulator.


What it has: Faster interpreter code and finally sound after all these years.

Dll plugins are not coded for this (lite) version because this is still a hack.

COMPILER option still doesn't work for real Amigas/Sonnet library.

Lots to do for the missing 3D Hardware, Controller, GUI, etc.... but seems to work.


FullScreen and SCALING work :great
..and the most important:
Sound and Music too !! :spin:crazy

Big THANKS to Cowcat!!! :bowdown
https://youtu.be/vvrOT5GWXR4

jurassicman 05 January 2024 18:05

The video looks impressive... is a 200 MHz e603 PPC Cpu enough to use this emulator or an higher clock is necessary?

kriz 05 January 2024 18:16

Quote:

Originally Posted by jurassicman (Post 1662333)
The video looks impressive... is a 200 MHz e603 PPC Cpu enough to use this emulator or an higher clock is necessary?

It would be slower on the 200Mhz :) Check the description of the video:
"Second beta FPSE (porting done by Cowcat) PSX emulator on Amiga 4000 with Mediator and Ragnarok PPC G3 800mhz on WarpOs (sonnet.library by Dennis Boon)."

grelbfarlk 05 January 2024 18:29

If the old FPSE version runs on CSPPC at what looks to be playable framerates, then maybe.

This version doesn't support Warp3D yet which the old version does and gave a large performance boost.

That being said it's awesome work!

*EDIT* Nevermind, it's very slow on CSPPC@200MHz. Maybe with compiler and Warp3D, but even then probably not.

jurassicman 05 January 2024 18:53

I thought that... but it is really impressive anyway! :great

grelbfarlk 05 January 2024 23:34

I think it will run nearly as well on Sonnet/Rapture/Apocalypse as when I first ran the old version on Sonnet there didn't seem to be that much difference compared to the faster boards that followed it.

amigoun 06 January 2024 00:16

Awesome work, cant wait to try it!

grelbfarlk 07 January 2024 16:55

Parallel PSX controller works with test version now! Digital only, analog sticks don't work which I think the fault is on my end.

BULI 08 January 2024 07:51

Quote:

Originally Posted by grelbfarlk (Post 1662675)
Parallel PSX controller works with test version now! Digital only, analog sticks don't work which I think the fault is on my end.

Analog stick didn't work in old version (from AmiDOG) too.

grelbfarlk 11 January 2024 04:46

How about a list of working/not working?
Working Well:
Marvel Vs Capcom
Syndicate Wars
Gran Turismo

Working slowly, not playable:
Soul Blade, Full 3D, maybe requires 3D acceleration

Not working:
Metal Slug X, game loads, select a character then hangs while loading level

BULI 11 January 2024 12:55

Good/prefect/work:
-ColinMcRae 1
-ColinMcRae 2
-Tekken 3 - frameskip 2 for perfec music
-Crash Bandicoot -
-Ultimate Mortal Kombat 3 - no music from multitrack cd/.CUE
-Mickey's Wild Adventure - no music from multitrack cd/.CUE
-Lomax - no music from multitrack cd/.CUE
-Return Fire - no music from multitrack cd/.CUE
-Porsche Challenge - music during the race is bad, you can turn down the music volume
-R-TYPE DELTA - full speed without SCALE option (native resolution: 320x240)
-Fade To Black
-Warhawk
-Crash Bandicoot 2
-Crash Bandicoot 3
-Army Men Air Attack 2 -
-ISS Pro Evolution 1
-ISS Pro Evolution 2
-Sports Car GT
-Sensible Soccer - the comment is too fast, so it's worth turning it off
-Need For Speed Porsche 2000 - no visible items in menu, so you choose blindly, but after start menu game works perfect
-Castlevania: Symphony of the Night

BAD:
-Soviet Strike - problem with movies/FMV, if You will skip movies (fast press fire), game will work until next movies etc
-Nuclear Strike - problem with movies/FMV just like in Soviet Strike, and BIG GLITCHES in game - unplayable

If some game doesn't work, try different ISO IMAGE or different revision of game :-)

Cowcat 17 February 2024 10:03

New beta 3 with psxport support and finally fixed compiler option.

BULI 19 February 2024 10:45

Quote:

Originally Posted by Cowcat (Post 1670004)
New beta 3 with psxport support and finally fixed compiler option.


Big THANK YOU for your GREAT JOB :-)))):bowdown

Yes, now with COMPILER MODE most games work with No_FrameSkip (MortalKombatTrilogy, ColinMcRae2, CrashBandicoot, Castlevania), or frameskip=2 (lTekken3, R-Type Delta), but with most games now can have 16bit sound via PCI sound card.
PsxPort and screen mode 16bit PC works well. :great:great:great

Hedeon 19 February 2024 11:49

Movies? :)

BULI 19 February 2024 12:25

Quote:

Originally Posted by Hedeon (Post 1670298)
Movies? :)

Will be soon :)

Hedeon 19 February 2024 17:29

No Warp3D, right?

Cowcat 19 February 2024 18:06

Quote:

Big THANK YOU for your GREAT JOB :-))))
Thanks for your beta-testing-patience.

So far (naive/uninteresting coder notes):

Compiler option: It didn't work on real machines but was ok on winuae/fs-uae.

- Before compiler function is called, memory caches are flushed by corresponding OS4/3/MOS Cache/ClearE-FlushData/etc on original source.
- I was using SetCache ( CACHE_ICACHEINV, buf, size ) for warpos but it wasn't enough (but ok running this port on MOS).
- "Odd enough", no SetCache functions or workarounds were needed on emulated environments........Emulation clears "all caches, all the time" ?????....
- .....a second SetCache ( CACHE_DCACHEFLUSH, blabla ) fixed the problem.

- There's a bunch of horror done trying to minimize system-calls/context-switches by using the known "68k assembly to hexadecimal". Mostly for AHI/Tasks and key events. If it works....


Further implementations on this "lite" version: Upgrade more soft render code, figure out a way to read CUE audio tracks ( more overhead for sure ), some hack for psxport, maybe some config support, etc, etc...

The Big Question: Where's the W3D version ?
It exists, runs and sucks big time. Fine while you test it on MOS (exactly as the MOS official port does) but not on real Amiga. :bash

Hedeon 19 February 2024 18:50

For WarpOS:

Don't think a 68k ICache flush is needed for PPC code. a DCache flush is weird because normally all (68k) data is on the PPC card (or should be) which is Zorro space which is set to noncachable for the 68k if mmu library is set up correctly.

Doing these flushes will trigger a context switch and will cost precious time as the PPC will be waiting for the 68k to be done. And flushing is time consuming (and the root of why WarpOS was made in the first place as PowerUP was flushing all over the place and Phase5 didn't want anybody else to fix it, as far as I understood it. They claim it was fixed later in PowerUP).

Can you compile a test exe for me without the cache flushes?

And you can always compile in 68K stuff using vbcc while the rest is gcc ;-) No need for hexadecimal.

Cowcat 19 February 2024 19:46

Quote:

Can you compile a test exe for me without the cache flushes?
Yep, of course.
I know about those cache flushes but no idea about other ways of doing it.

Testing the "w3d version" in FS-UAE / OS4 Classic without DCacheFlush (and only ICACHE_INV) stopped the compiler mode within FPSE and program ran normally in interpreter mode without crashes ( a message about a buffer null was in the output ).

Weird that in WinUAE/OS4 test, the same w3d version didn't stop the compiler from running.

The discrepancy with those emulators also made me think that something was missing.


Quote:

And you can always compile in 68K stuff using vbcc while the rest is gcc
That's what I do but I go further taking out stuff. Tons of fun :crazy


All times are GMT +2. The time now is 02:51.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.04787 seconds with 11 queries