Release Pcsx-Rearmed


Hoooo, nice! Thanks Notaz! I love the frontend :)

Tried, at 650MHz:
  • Castlevania - Symphony of the Night: works well, frame rate can be inconsistent (based on graphic effects), overall ok with good audio
  • Colin McRae Rally: crashes
  • Street Fighter EX Plus Alpha: Slow (~30fps) audio totally out of sync, but can still get a good fight going :D
Only bug I saw was in the Player 1 control assignments: looks like Circle and Square are incorrectly bound together (i.e. setting one sets the other to the same thing)


Again, great stuff! You rock!
 
Notaz, I'm so glad you've taken PSX on. A donation will be winging its way to you :)

Question - Will not requiring the BIOS stop some games from working? Metal Gear Solid wont start (known to be working), also I have a jap version of Symphony of the Night (Akumajou Dracula X - Gekka no Yasoukyoku (J) (v1.2) [SLPM-86023] bin & cue files) which is patched with english subs, also known to be working, this has a screen stating that if you bought from Ebay you have been conned. It states "now loading" then crashes everything and then need to reboot the Pandy.

Any ideas or will these issues be sorted later?

Thanks so much
 
Wow, what a present!
Thank you very much notaz, I'm really looking forward to try this once my pandora returns.
 
Alright Notaz, I have tested a bunch of games, and here is what I found. Please note all games where tested at 700, and with no other setting changes, as I wasn't sure if any where active or not. I also only tested games briefly, so I can't say how and if any other problems occur at later points. Also, does your emu support the analog nubs? Mine is broke, so I didn't bother to check.

Castlevania SON:Runs 40-60 frames depending on the action, and the FMV clips at the start have no sound. Very playable.

Dino Crisis:Runs 40-50 frames depending on the action, and the sound is very choppy and low. Runs a lot better than on psx4 though.

Einhander:Gives you "wait" message, and appears to hang up there.

Heart Of Darkness:Let's you get to game select screen, and once you start, it dumps you out to minimenu.

R-Type Delta:Jumps to "Now Loading" and just hangs there.

Resident Evil 2:50-60 frames. The sound stutters in some spots, but also runs clear in some areas. The speech is also loud, unlike Dino crisis's low sound.

Street Fighter Collection:Only tested SF2Turbo on disc 1. It ran about 53-57 frames, but it does something weird. When you get to the character select screen, it starts as a 2 player game, and all your movements are for both players.

Strider:Hangs up after Capcom FMV logo screen.

Original Wipeout:40-60 frames depending on the action. Is very playable.

Policenauts(english patch edition):Won't load at all. It ran perfect at 500 on psx4.

Thanks again Notaz, your work in the community is legendary. Your emu's are among the best out there, and I expect no less from this one over time. I'm sure others will give you more detailed input ASAP. I just thru this together so you would have someting to go on in regards to tweeks and improvements. I look forward to the next update.

Chris
 
Thanks Notaz. Having a completely new version, with source is *so* good. Good Playstation emulation is so important for me.

Edit: Donated you some cash for being awesome. You're really helping the Pandora, and that means a lot to us all. Merry Christmas.
 
Thanks for the support everyone!

DaveC said:
The Key binding thing is a bit weird too.
It's a copy-paste bug. Memcards are both HLE bios problem and me messing up paths, I'll fix the later at least.

b_o_b said:
Also installed PCSX on my Ubuntu Desktop and tried 2 games that didn't work on the Pandora. Those games are Driver and Gran Turismo. In both cases they do work on my desktop. I guess that is good news, and this are bugs in Notaz' version that hopefully can be solved.
Which version, the one from repository? HLE/real BIOS?

jonlad1 said:
Question - Will not requiring the BIOS stop some games from working?
Yup, and real BIOS needs some dynarec support that's missing right now.

jonlad1 said:
Any ideas or will these issues be sorted later?
Well it all depends on what kind of bugs or other technical problems hide behind this and how easy it is to track them down, I'll have a look at least.
 
Last edited by a moderator:
Got a big list of playtesting since last night to post shortly but cant express enough thanks and will be donating soon as this is great work!
 
MTV Pure Ride works in this emu! Just for that alone this is gold!

Tried a lot of games today and compatibility seems to be quite good. There were a few notable exceptions were some games didnt load or directly crashed the emu (games which in just about every other emu work) but overall pretty good.

Tekken 2 still has the same wierd issue were the fighters are all "spikey" and Syphon filter(s) dont work unfortunately. Also there is something weird happening in Soul Blade where it seems to think Im using joy port 2. Something similar happened in NASCAR Rumble were it complained that I didnt have a joypad plugged into port 1, but I went into the key config menu, came back out and it seemed to work ok.

Anyway, again great job! Already looking forward to the next release ;)
 
Many thankyous, notaz. This looks most excellent. :) I've unfortunately not got the free time to test anything right now, but I'm looking forward to when I do.
 
notaz said:
Which version, the one from repository? HLE/real BIOS?

PCSX-Reloaded 1.9.92 (so latest version). No real BIOS, so HLE. I checked the BIOS directory to be sure it was empty.

PCSX isn't available in the standard repository. I used the playdeb method to install. http://www.playdeb.net/updates/ubuntu/10.10/?q=pcsx
 
Last edited by a moderator:
Lobo said:
Tried a lot of games today and compatibility seems to be quite good. There were a few notable exceptions were some games didnt load or directly crashed the emu (games which in just about every other emu work) but overall pretty good.
Please list those emu crashers so I can look at them.
 
Last edited by a moderator:
Awesome support already, the "other" PSX emu didnt get such speedy replies and that is why this gets my money and support!
 
Medal of Honor Log:
Code:
rm: cannot remove `/tmp/cpuspeed': No such file or directory
not mounted on loop yet, doing so
LoopMountedon: 
losetup: Could not find any loop device. Maybe this kernel does not know
       about the loop device? (If so, recompile or `modprobe loop'.)

usedminor
freeminor 1
Filetype is Squashfs
sudo mount -t squashfs  /dev/loop1
mounting union!
Filesystem is vfat
[------------------------------]{ App start }[---------------------------------]
oshide: open /dev/tty: No such device or address
plugin_link: missing symbol 0 GPUclearDynarec
plugin_link: missing symbol 0 GPUvBlank
plugin_link: missing symbol 0 GPUclearDynarec
plugin_link: missing symbol 0 GPUvBlank
writing fir: up_h
writing fir: up_v3
writing fir: up_v5
pcsx: libpcsxcore/new_dynarec/new_dynarec.c:5624: sjump_assemble: Assertion `opcode2[i]<0x10||rs1[i]==0' failed.
Running PCSX Version 1.9 (Dec 25 2010).
Init new dynarec
No memory card value was specified - creating a default card memcards/card1.mcd
Loading memory card memcards/card1.mcd
No memory card value was specified - creating a default card memcards/card2.mcd
Loading memory card memcards/card2.mcd
in_evdev: found "gpio-keys" with 30 events (type 00100023)
input: new device #0 "evdev:gpio-keys"
in_evdev: found "keypad" with 84 events (type 00100013)
input: new device #1 "evdev:keypad"
in_evdev: found "nub0" with 3 events (type 00000007)
input: new device #2 "evdev:nub0"
in_evdev: found "nub1" with 3 events (type 00000007)
input: new device #3 "evdev:nub1"
# drv probed binds name
0   2      y     y evdev:gpio-keys
1   2      y     y evdev:keypad
2   2      y     n evdev:nub0
3   2      y     n evdev:nub1
oshide: X vendor: The X.Org Foundation, rel: 10704000, display: :0.0, protocol ver: 11.0
oshide: display is 800x480
/dev/fb0: 800x480@16
fbdev initialized.
 switching to 640x512@16
/dev/fb1: 640x512@16
fbdev initialized.
found skin.txt
dlopen plugins/builtin_cdr
dlopen plugins/builtin_gpu
dlopen plugins/builtin_spu
dlopen plugins/builtin_pad
dlopen plugins/builtin_pad
Plugins loaded.
ari64_reset
selected file: /media/SDCARD/games/pcsx4all/isos/MOH.cue
dlopen plugins/builtin_gpu
dlopen plugins/builtin_spu
dlopen plugins/builtin_pad
dlopen plugins/builtin_pad
Plugins loaded.
Loaded CD Image: /media/SDCARD/games/pcsx4all/isos/MOH.cue[+cue].
Track 01 (DATA) - Start 00:02:00, Length 70:09:60
ari64_reset
CD-ROM Label: MOH_NTSC                        
CD-ROM ID: SLUS00974
 switching to 320x240@16
 switching to 512x240@16
 switching to 320x240@16
 switching to 512x240@16
 switching to 320x240@16
 switching to 512x240@16
 switching to 320x240@16
 switching to 512x240@16
 switching to 320x240@16
 switching to 512x240@16
Aborted
open /dev/tty: No such device or address
fixing yoffset.. ok
[-------------------------------]{ App end }[----------------------------------]
cleanup done
 
notaz said:
So I decided to go for combining Ari64's recompiler with PCSX and ended up with this build of PCSX-ReARMed that you can try now. Something like 95% of the time was spent on integrating the recompiler and fixing various related issues that arose from this work. No matter how good it is for recompiling, it's *very* difficult and frustrating to work with due to code quality issues. Code duplication (usually 3-4 times), most variables given 1 to 3 letter long names, globals all over the place, magic constants and some hardcoded N64 logic made it a really tough job (no offense Ari64, I'm really pleased on how it works now, at least until new major bug pops up B) ).
I'd like to know what recompiler you think has a good design. :)

Every CPU core that I've ever seen has either code duplication or an excessive number of macros that make the code unreadable. It's kinda inevitable when you have many instructions with similar but not identical operations.

I tried to minimize code duplication by grouping similar opcodes into a single function. For example, all the arithmetic/logic operations are in alu_assemble. This wasn't always as successful as I'd hoped. Combining the coprocessor loads and stores into a single function lead to a "magic constants" mess where it checked the opcodes. Also the delay slot reordering turned into a much bigger mess than I'd anticipated (it does work, and generates much better code than psx4all.) Other code duplication was to deal with certain rare cases that only became apparent relatively late in development (mostly tlb-related, eg dyna_linker_ds).

I clearly designed the recompiler as an N64 emulator and not a PSX emulator. For example, many tables are sized to optimize for emulating a system with 8MB RAM (eg jump_in, restore_candidate). That said, I'm surprised at how little you had to change to get it to work for pcsx. Most of the changes were for GTE.

I still can't figure out what you did with the JALR instruction. Is it really possible to have the return address in a register other than 31?

notaz said:
(although it's under rather restrictive GPL license).
ZodTTD hasn't been very consistent about publishing source code, but he isn't the only offender. I don't see how a license other than GPL would address this problem. Not that it's all that easy to enforce the GPL.

Anyway, having an up-to-date, open source psx emulator for the Pandora is really great. Thanks for doing this.
 
Last edited by a moderator:
Ari64 said:
That said, I'm surprised at how little you had to change to get it to work for pcsx. Most of the changes were for GTE.
Hmh I'm not really sure about that. git log lists 24 commits (I try to do 1 commit per 1 logical change) and it looks I'll need to do more due to bugs just reported.

Ari64 said:
I still can't figure out what you did with the JALR instruction. Is it really possible to have the return address in a register other than 31?
Sure, check the manual. At least Crash bandicoot 3 relies on this.
The reported Medal of Honor crash is because it does BGEZAL, and you don't handle that.
Chrono Cross does unaligned store to non-RAM location that emited 'swi 0' - was this a form of TODO? Note that swi0 is valid EABI syscall interface..

Here is a list of commits that I think fix bugs in your code (in addition to missing stuff listed above; use 'git show <hash>' to lookup):
cfcba99, 666a299, 514ed0d, f76eeef, fab5d06

Ari64 said:
notaz said:
(although it's under rather restrictive GPL license).
ZodTTD hasn't been very consistent about publishing source code, but he isn't the only offender. I don't see how a license other than GPL would address this problem. Not that it's all that easy to enforce the GPL.
What I meant there is that when I considered doing emu from scratch I would most likely have it closed source to prevent it's ports ending up in appstores, Zod-like donation-hostage setups, Chinese PMPs and such. Your recompiler could not be used then.
 
Last edited by a moderator:
Just popping in to say hey and well wishes for everyone.. quite a surprise! Notaz stealth coding again ;)

I've been working huge hours, barely had time to pop by lately (working through most of Xmas even .. too many layoffs and layoffs :/), so cool to see a surprise :)

Does it do redbook audio/whatever? I've only for a few PS1 titles (and riped right from CDs, so nice and big :) , but hopefulyl can get audio in Wipeout .. great game, but needs audio; will try in a bit!

jeff

(Worst part of Christmas is all the family and friends heading home .. house is so quiet afterwards! But spent a few hours today playing wooden trains with my little girl, so life is good ;)

edit: notaz, Wipeout 3 for first run .. I've got a .img ripped from the PSX CD. Pal English version in fact.
Last useful line is: fixing yoffset.. ok
then boom, crash.

Does this need scratch space on the SD by chance? Space is tight there.

--

Does it handle PSP-style eboots by chance? I'm assuming not. I have a Hydro Thunder psp eboot rip I made a few years back, seems no go; I'll have to strip off the PSP headers and such and give it a shot.

R-Type Delta, spins forever on Now Loading; a PSP oriented eboot that I previously converted to iso for testing with some random emu.

--

Not great debug info, but only so much I can type on my phone :) If you like, I'll get solid dumps of the logs for you or in a few days I throw it up in gdb and see what I can see.

jeffphone
 
Wow Notaz thats one helluva xmas present :)

I love the UI, its way more responsive, the save states work fine but memcards saves only just started working (after V rally 2 must have written them in. Lost a bunch FFVII ones but they do now work). In fact defnitely do as Pickle states and create 'memcards' folder in 'pcsx/appdata' as they dont work otherwise. I also noticed as DaveC had mentioned there's an issue with remapping controls but that is a godsend anyway. In addition I cant get a 'global config' to save the scaler as 'fullscreen' (should I be able to?)

Anyhow I started testing at 12.30am when I found this and have tried a bunch of games.

Better than PSX4:

3xtreme - faster speed but sound is wrong.
The Abe games - both work with no gfx issues or fix needing.
Ape escape - same dual analog story.
Alone in the Dark 4 NN - Seems fine, whereas used to crash after initial cutscene.
Batman Forever Arcade - Now doesnt quit after some damage is taken.
Darkstalkers 3 - Perfect now. Had gfx issues on R side of screen before.
FFVII - seemed smoother music and slightly faster to me (so I lost a few hours till 3am there :) )
FFVIII - Now works for me. Havent checked the world map screen for issues yet.
FFIX - Same story (except I give a shit about 9 and 8 could've drowned itself in the opening ocean).
RidgeRacer4 - seemed better speed but the music was out of synch.
Colin McCrae Rally - for me at least, now runs the Rally school section which crashed out in PSX4Pandora and no longer has the last part of the intro garbled.`
Rollcage 1 - gets to fully loading the race bar...and then hard crashes.
Smurf Racer - flawless until race start. Crashes.
Time Crisis - looks like it might run but d-pad wont move cursor more than a few millmetres.
Vagrant Story - Now works for me but no character models in cutscenes and Ashley is in an offscreen position.
Virtual Pool - works fine in this emu.
V Rally 2 - seems way faster and more responsive.
Wipeout 3 - Now has music :)

Worse than:

40 Winks - crashes to desktop.
Alien Ressurection - crashes to desktop. Can change the keys to make it playable though :)
Apocalypse - crashes to desktop
Auto Destruct - Poorer sound and speech.
Anna Kournikova SCT - Music is messed up, notes hang until service etc.
Bishi Bashi Special - soft crashes at the choice of Super or Hyper mode.
Bushido Blade 2 - Runs at better speed but has rendering issues.
Carmageddon - hard crashes the system.
Crash 2 and 3 - both crash before gameplay begins.
Darkstone - loops its intro animations then crashes to desktop after 'press X to start'
Deathtrap Dungeon - loads just 1fps of the bios disclaimer.
Dino Crisis 2 - Intro smoother. In game just garbled gfx.
G Police - Crashes to desktop.
Metal Gear Solid - black screens.
Omega Boost - doesnt run
Point blank 3 - hard crashes.
Silent Bomber - seems fine then loops the drop zone animation of Dante in the tutorial and cant be played.
Soul Reaver - crashes to desktop on game start.
Space Hulk - doesnt run
Tiger Woods PGA - Severe sound stutter.
Tom Clancys Rogue Spear - fails to load levels. Priorly ran but mis rendered.
Tony Hawks - crashes to desktop after the intro animations.
Tenchu 1 - crashes to desktop after sony spiel.
Tenchu 2 - runs intro movies but quits when training level is loading.
RC Stunt Copter - analog controlle issue (my bust nub maybe as worked b4)
Resident Evil Directors Cut - black screens immediately.


Same :

Destruction Derby - dont play
Devil Dice - still no dice!
Discworld - Plays fine.
Discworld II - dont play
Duke Nukem - Time to Kill - Plays fine.
Exhumed - Plays fine.
Fear Effect - Plays fine.
Final Doom - Hard crash
G Darius - Plays well. Some sound stutter.
Intelligent Qube - plays fine.
Virtual Pool 3 - dont play

Loads more to try : )

Sorry for repetitions but peoples mileage does vary.
Many thanks again Notaz as for the UI + FFIX alone this is awesome :)
 
notaz said:
Ari64 said:
That said, I'm surprised at how little you had to change to get it to work for pcsx. Most of the changes were for GTE.
Hmh I'm not really sure about that. git log lists 24 commits (I try to do 1 commit per 1 logical change) and it looks I'll need to do more due to bugs just reported.
There were 9 places where you reversed the endianness, and most of the rest was removing FPU, 64-bit, and TLB. I thought changing the memory layout would be more complex, though from what you say, this might need more work.

notaz said:
Ari64 said:
I still can't figure out what you did with the JALR instruction. Is it really possible to have the return address in a register other than 31?
Sure, check the manual. At least Crash bandicoot 3 relies on this.
The reported Medal of Honor crash is because it does BGEZAL, and you don't handle that.
Chrono Cross does unaligned store to non-RAM location that emited 'swi 0' - was this a form of TODO? Note that swi0 is valid EABI syscall interface..
I'm fairly certain no N64 games rely on this behavior for JALR, because I never noticed that it was wrong, and no one reported it.

I know that a few N64 games do use BGEZAL, and they seem to work okay. I will admit that this code is not well tested.

Unaligned stores to non-ram locations are unimplemented because I don't know what the correct behavior is supposed to be, and no N64 games do that. If these locations are treated like RAM, then I guess you can break it down into separate byte/word stores. If they're I/O triggers, then I don't know what the actual hardware would do.


notaz said:
What I meant there is that when I considered doing emu from scratch I would most likely have it closed source to prevent it's ports ending up in appstores, Zod-like donation-hostage setups, Chinese PMPs and such. Your recompiler could not be used then.
If my recompiler wasn't open source, then it probably wouldn't be used much at all, and we would have rather poor N64 and PSX emulation on the Pandora, if any.

Dingoo/Gemei actually selling a PSX or N64 emulator would be quite a leap for them in terms of hardware capability :)
They will probably try it eventually, just like they did with gpSP and snes9x.
 
Last edited by a moderator:
notaz said:
Thanks for the support everyone!

DaveC said:
The Key binding thing is a bit weird too.
It's a copy-paste bug. Memcards are both HLE bios problem and me messing up paths, I'll fix the later at least.


jonlad1 said:
Question - Will not requiring the BIOS stop some games from working?
Yup, and real BIOS needs some dynarec support that's missing right now.
If you fix the later that means you will look at the Memcard bug but won't look at the key binding issue? How can I set the keys back to what they are supposed to be then? Where did you hide the key config thing, I can maybe just edit the config file.

Also what do you think of the config per game idea, you didn't really mention the thoughts with that. The reason that would be good is because the PSX had 4 shoulder buttons. Some games work better with the actual shoulder buttons as L1 and L2 and some games work better the opposite. Having to go through the key bindings constantly to switch back and forth is not too easy. Also many games had many different resolutions so it would be nice to be able to tailor that per game, otherwise again you need to fiddle around for different games. You did this nicely in PicoDrive so I would guess it would be pretty simple here too.

I think having BIOS support would be pretty important and do wonders for compatibility. At least then it should match or exceed PSX4Pandora in compatibility and then we could nix that emu as it is not nearly as good. I hope someday before you move to something else that maybe that could be added.

notaz said:
Please list those emu crashers so I can look at them.

In case you missed my short list of crashers that work in PSX4Pandora:

Disruptor - crashes to minimenu
Einhander - locks up at "WAIT..." screen (BIOS related maybe?)
Raystorm - locks up during intro.

Thanks again for everything, This is looking brilliant so far..
 
Last edited by a moderator:
Back
Top