PS1 / PS2 support. #2197
nicolasnoble
started this conversation in
General
Replies: 1 comment
-
People have asked many times about this. the answer has been maybe. But seeing as you say you are a developer with actual ideas with how it will work, the answer is creeping further away from no, at least in my eyes. probably best for another developer to give their opinion though |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hello. Playstation developer here. I am interested in helping adding PS1 and PS2 support to Furnace tracker, but I would like to discuss/design it a bit first before I launch myself into writing code which may or may not be an exercise in futility.
Basically the SPU chip of the PS1 and the SPU2 chip (yes, we call it this way) of the PS2 is an improved version of the DSP portion of the SPC700. The main differences are:
So, to me, depending on how the tracker is architectured, the PS1/PS2 support could simply be the same as the SNES one, with some conditionals sprinkled here and there. Basically my thought is, if there's already SNES support through DSP commands emulation, then we'd be more than halfway there. I have yet to explore the code, but will start doing so later this week.
Writing the real hardware driver would of course be very different than the SPC700 one, but also probably more simple, as it's really just a matter of periodically writing to hardware registers, and can be done using modern C/C++, as long as the period stays reasonable, like around a couple hundred hertz at the very very maximum, and ideally 50hz for a typical 125BPM track. Typically, games would use a sequence player library, which would expose one function to call periodically, and then the user code would set up a timer to do so. For instance: https://github.com/grumpycoders/pcsx-redux/blob/300e80b3070e83d5bd2061175daa11d26d3de4ac/src/mips/psyqo/examples/tetris/tetris.cpp#L63-L73
There's also the matter of cooking the file specifically for the usage of the consoles, but that'd be a bridge to cross later and a small detail overall.
Let me know if that's something of interest, if I'm in the right direction, and I can try working on some code.
Beta Was this translation helpful? Give feedback.
All reactions