PS2 N64-Emulation on PS2 - a discussion about a possible structure + release (alpha/beta/test)!

Source code:
https://github.com/belek666/daedalus
Binary:
https://uploadfiles.io/6jr3bcz7
Put files/folders on root directory of mass, looks for roms in 'Roms' directory.

I've made quick test with this prototype.
It takes some time for an ELF to boot (~1 min) from USB.
There are 541 covers inside the package, so probably most of games will have cover preview.
I've testes only three games (GoldenEye 007, Star Fox 64, The Legend of Zelda - Majora's Mask),
all of them are getting stuck at Nintendo logo:
nintendo2.png

When I re-run game I'm getting BSOD, I need to delete files from "SaveGames" folder to make them launch again.

Thanks for your work.
Best regards.
 
@belek666: I adapted the title, so that more sites and users will notice it!

I still think a separate thread or "resource" and/or "news"-post/thread would be appropriate...! It also can be done by someone else, if you don't write such a post, but want it to exist! ;)


You wrote quite some lines to make it to that stage (as it seems)!

At current state this port is not quite usable. I think we should wait for more progress, treat it as test build, simply poc.

This definitely needs a news-echo on ALL scene-sites (related to Homebrew) IMO!

I am just not quite sure, as to who made what regarding the current release...

Initial porting-work: @z2442
Recompiler work: @belek666
?!?
All work for porting psp verison to ps2 in this release was done by me. Did @z2442 worked on ps2 port too?
 
Yes he did and another person as well elsewhere, but closed for the time being!

Your repo: github.com/belek666/daedalus
z2442's repo: github.com/z2442/daedalus
Official repo: github.com/DaedalusX64/daedalus


All alone? Greeeeeaaat work!
Didn't happen at a weekend I suppose... Very cool!


Even as a PoC, it is technically already at a point, where it can be presented to the masses, IMO! I think this would yield quite a bit attention and possibly bring more Devs and Testers "to the table"! :)
I bet @z2442 would like to work on it + I am absolutely sure he is not the only one!!!

This project DESERVES attention!
I bet a lot Devs could contribute small pieces!

This is a skill-test at its best, especially for those who want to try an as accurate emulation (LLE or LLE-like) as possible on a quite limited Hardware!


The program also already has a GUI and this thread itself is rather about the general implementation of the emulation and solely technical stuff and not about the whole port!

The project deserves an own thread, which is also for user-questions and IMO also a News-Thread for those people out there and possibly a "resource" here on board! ;)
 
Last edited:
@belek666 : Are you sure it are the vertices that are glitching and not the texture-coordinates or the polygonal/texture(-to-mesh)-mapping?

The 3D-Objects itself seem to be fine mostly, even if it looks weird (as it can be seen in the videos @Tupakaveli posted)...


It seems it happens, how more textures are drawn on screen (or already 'loaded in a list')... Does it only look that way?

@all:
I would really like to see more tests!
I am not quite sure why, but Mario64 didn't work for me... Well, I will reinstall the emulator onto another USB-Device...


Edit: Another video...

 
Last edited:
So... It seems the news is spreading anyway (it's also on Ps2-home.com already and gbatemp.net and wololo.net and others will follow quickly!), so I think some threads would be useful!
  • News-Thread
  • Release-Thread (preferably written from you @belek666 or pre-written, but posted in your name, so you can edit the first post)
  • Compatibility-Thread
  • Bug-Reports-Thread
  • etc. (maybe even a sub-forum?!)
Are you o.k. with that @belek666? The news is already spreading and the threads and board-related stuff can be done by others, if you are short on time... ;)
 
N64 is impossible to run on the PS2! Never ask about it! /s

Hopefully, after I fix hardware floating point in my updated toolchain, some degree of speed improvements can be seen (similar to when Daedalus 1.1.6 was released).

I'm curious how hard it was to port it. Were there any JIT code generator changes needed?
Here's a PSX emulator that uses a MIPS-to-MIPS recompiler: https://github.com/dmitrysmagin/pcsx4all
I doubt I will take a crack at it anytime soon, but it's interesting to hear if there were any changes needed.
 
N64 is impossible to run on the PS2! Never ask about it!
Yeah exactly, lol!

Btw.: Your and Maximus32's stuff and extentions (especially regarding updating the stuff and newlib-support), are very useful regarding this, because there's a bit less to do.

Is that a 4chan or reddit (or similar) 'sub'?
...or a word, which lands in toilets? Lol
I agree fully on the premise/conclusion, that it ever had been possible, tho'...

Just because a non-optimized emulator runs bad, doesn't mean the hardware isn't capable of emulating something properly and people used some non-optimized emulators, to claim the PS2 is not capable of emulating things...

Hopefully, after I fix hardware floating point in my updated toolchain, some degree of speed improvements can be seen (similar to when Daedalus 1.1.6 was released).
That would be awesome!
IMO, it is possible to improve the performance A LOT, just by RELATIVELY "trivial stuff", like the of-splitting of tasks/threads to other Hardware-components (like belek666 also mentioned)! ;)

I'm curious how hard it was to port it. Were there any JIT code generator changes needed?
Here's a PSX emulator that uses a MIPS-to-MIPS recompiler: https://github.com/dmitrysmagin/pcsx4all
I doubt I will take a crack at it anytime soon, but it's interesting to hear if there were any changes needed.
Yes, MIPS2MIPS should be possible WITHOUT THE NEED of a recompilation! However... The PS2 does not allow for ALL of the N64-Opcodes to be directly executed, but MOST of them!

The Opcode-Matrix-Idea is essentially just about that...
Compatible Opcodes are directly "loaded", "registered" and "executed", but incompatible ones are "translated" to custom implementations or other calls which do the same.
 
Last edited:
So... It seems the news is spreading anyway (it's also on Ps2-home.com already and gbatemp.net and wololo.net and others will follow quickly!), so I think some threads would be useful!
  • News-Thread
  • Release-Thread (preferably written from you @belek666 or pre-written, but posted in your name, so you can edit the first post)
  • Compatibility-Thread
  • Bug-Reports-Thread
  • etc. (maybe even a sub-forum?!)
Are you o.k. with that @belek666? The news is already spreading and the threads and board-related stuff can be done by others, if you are short on time... ;)

All is in @belek666 control if he would like to use it.. no worries if not.
https://www.psx-place.com/resources/daedalus-x64-ps2-port.883/

But it cover some info and i think that is what is needed before main page news IMO.. rather have more answers then create more questions if we can wait and have those answered before they are asked in regards to news.
 
Wow. Amazing work!

Emu runs for me, Both games I tried booted into the game itself, (Super Mario 64 and RR64 - Ridge Racer 64)

Ran from USB. Didn't have to mess with SaveGames on subsequent run, Took maybe ... 30 secs to load. Copied on root of USB.

The GFX themselves are rather messed up, layers/effects missing. RR64 was totally corrupted. SM64 was almost playable.
 
Hopefully, after I fix hardware floating point in my updated toolchain, some degree of speed improvements can be seen (similar to when Daedalus 1.1.6 was released).

Does it still have the deficiencies, as in my original patches? Without completed support for MMI, it'll generate longer code than our existing toolchain.
 
I had trouble getting this emulator to run through a disc, but using my 512MB flash drive worked. there's no sound, and the game appears to freeze after it goes through the demo.

k5IgQzf.jpg
 
This is great work, I can write an article up on this or can wait until it progresses .. I do not mind either way.


I am thinking...N64 via PS2...
For sure worth trying on the PS3 in the future, to see what it does via a ps2 classic / iso.

.......If this is possible...then im sure theres a way to play MAME Roms with CHD Files....mainly Ki & Ki2 arcade versions...
 
parts of mario's face were missing when I tried mario 64. you remember how you can stretch the face on the title screen with the controller? that's the part I'm referring to. ;)
 
Theoretically, would it be possible to port Snes9xTYL from PSP to PS2 ? Considering PSP GPU is 2.6 gigaflops compared to the faster PS2 GPU at 6.2 gigaflops.
 
@belek666 : Are you sure it are the vertices that are glitching and not the texture-coordinates or the polygonal/texture(-to-mesh)-mapping?

The 3D-Objects itself seem to be fine mostly, even if it looks weird (as it can be seen in the videos @Tupakaveli posted)...


It seems it happens, how more textures are drawn on screen (or already 'loaded in a list')... Does it only look that way?

For sure that vertices are glitching. Tested that by just drawing lines instead textured triangles. Same problems happens on interpreter and dynarec. I've had to disable daedalus software clipping also because it discarded to many polygons. It may be something related to projection matrix.

N64 is impossible to run on the PS2! Never ask about it! /s

Hopefully, after I fix hardware floating point in my updated toolchain, some degree of speed improvements can be seen (similar to when Daedalus 1.1.6 was released).

I'm curious how hard it was to port it. Were there any JIT code generator changes needed?
Here's a PSX emulator that uses a MIPS-to-MIPS recompiler: https://github.com/dmitrysmagin/pcsx4all
I doubt I will take a crack at it anytime soon, but it's interesting to hear if there were any changes needed.

Current support for c++ is kind buggy. Maybe newer toolchain can fix some problems.
Not many changes were required to get dynarec to work. Some of them:
- ins, ext opcodes are missing on EE, I've used macros as quick solution
- stack pointer alignment must be multiply of 16
- proper cache instruction arguments
- commenting out missing FPU opcodes to use interpreter functions instead
- forbidding using register k0 as it get trashed by interrupts
- fix some unaligment memory access errors

All is in @belek666 control if he would like to use it.. no worries if not.
https://www.psx-place.com/resources/daedalus-x64-ps2-port.883/

But it cover some info and i think that is what is needed before main page news IMO.. rather have more answers then create more questions if we can wait and have those answered before they are asked in regards to news.

Thanks.
 
Back
Top