Emulate A Sega Saturn


Without being rude.

You're in a general forum with everyone impatiently awaiting their Pandora. They're going to talk shit and play around (myself included).

Why not place this or start a new Sega Saturn Emulator thread in the Development Forums?
Look at Mupen64Plus, it's development only now (after some harsh words from admin).

I wasn't being rude, but it makes sence. It'll be dev talk only. Here is General and people do want to enjoy having a chat, too.
 
Huh? You're talking to me, right?

No one here is working on a Saturn emulator. No one needs a thread for Saturn development. I make comments that may or may not be technically oriented because those are the comments I feel like making. I apologize if all of the details are not totally accessible to everyone who reads them, but no posts are going to be interesting to everyone who reads them. I'm sorry, but I have to disagree with you - I do think it is pretty rude to tell people to not talk about the technical aspects of emulating a Saturn in the "Emulate A Sega Saturn: Why isn't it possible?" thread, especially when people have been asking for more and more specific details. If you didn't expect to read those kinds of things in this thread what did you expect to read, arguments over whether or not the definition of "old school" revolves around Dunny's age span?
 
MDave said:
Seriously, the threads gone to crap again. Take this to off-topic discussion or something.

Aimed at the above comment.

Exophase said:
Huh? You're talking to me, right?

No one here is working on a Saturn emulator. No one needs a thread for Saturn development. I make comments that may or may not be technically oriented because those are the comments I feel like making. I apologize if all of the details are not totally accessible to everyone who reads them, but no posts are going to be interesting to everyone who reads them. I'm sorry, but I have to disagree with you - I do think it is pretty rude to tell people to not talk about the technical aspects of emulating a Saturn in the "Emulate A Sega Saturn: Why isn't it possible?" thread, especially when people have been asking for more and more specific details. If you didn't expect to read those kinds of things in this thread what did you expect to read, arguments over whether or not the definition of "old school" revolves around Dunny's age span?

It's not aimed at your at all.
MDave was saying the thread has "gone to crap again" and to keep it simple, if he wants to keep it solely development then post or start one in Development Section.
You know for a fact no matter what is started you're going to have smart ass comments, jokes and it'll always go off topic!

MDave: "Take this to off-topic discussion or something.". What I'm saying seems to make complete sence to me. General = General comments and Dev's jump in, too.

I'm sure what I'm saying is not too unrealistic.

My comment was not an attack on anyone.
 
Last edited by a moderator:
Sorry, I misunderstood who you were talking to since your post came after mine and you said this stuff should be moved to dev talk.
 
Exophase said:
MDave said:
Seriously, the threads gone to crap again. Take this to off-topic discussion or something.

I was comparing the SH-2's processors in the Saturn and the 32X, and it seems that the differences are minimal, the 32X has slightly slower MHz and I can't seem to find information if they have any on-chip cache.

Would the work Notaz has done on SH-2 emulation for his Wiz/GP2X Picodrive emulator (which lately has been getting 32X support) help towards Saturn emulation? :)

The CPUs are like you say, the cache is also the same in the 32X. 32X + Genesis was kind of like a half-Saturn and was definitely part of Sega's development path. The 32X documentation even mentions Saturn in a few places.

notaz's work would probably help a lot. For all we know, he might be interested in trying a Saturn emulator himself, although the work needed for the two VDPs, DSPs, audio chip, and CD-ROM management can't be underestimated.
Very interesting. :)

Is Notaz getting a Pandora?
 
Last edited by a moderator:
Esn said:
Very interesting. :)

Is Notaz getting a Pandora?

notaz has a Pandora board, and has had them longer than most people. In fact, notaz has probably put more essentially work into the Pandora kernel than anyone else. Let's just say he's been really, really helpful, and without his support I'm not sure if the Pandora software base would be anywhere close to where it is today.

... so to answer your question, probably :a

** needlessly provocative hyperbole **

In my mind, going from Genesis + Sega CD + 32X emulation to Saturn emulation is kind of like going from GBA to DS emulation. Take from that what you will.

Or I could also just be making crap up.
 
Last edited by a moderator:
I get the feeling Exophase knows more than he's letting on. :p

Maybe that's just because I'm so desperate to play NiGHTS on my Pandora that I'll read ANYTHING into ANYTHING even if there's NOTHING to be read.

I also agree with kingoddball. If MDave wants a thread that's totally on technical aspects it should be in the dev section. This are is a lot more playful and I for one enjoy reading everybody's (incorrect :p) opinions on what the best console ever was!
 
kingoddball said:
MDave said:
Seriously, the threads gone to crap again. Take this to off-topic discussion or something.

Aimed at the above comment.

Exophase said:
Huh? You're talking to me, right?

No one here is working on a Saturn emulator. No one needs a thread for Saturn development. I make comments that may or may not be technically oriented because those are the comments I feel like making. I apologize if all of the details are not totally accessible to everyone who reads them, but no posts are going to be interesting to everyone who reads them. I'm sorry, but I have to disagree with you - I do think it is pretty rude to tell people to not talk about the technical aspects of emulating a Saturn in the "Emulate A Sega Saturn: Why isn't it possible?" thread, especially when people have been asking for more and more specific details. If you didn't expect to read those kinds of things in this thread what did you expect to read, arguments over whether or not the definition of "old school" revolves around Dunny's age span?

It's not aimed at your at all.
MDave was saying the thread has "gone to crap again" and to keep it simple, if he wants to keep it solely development then post or start one in Development Section.
You know for a fact no matter what is started you're going to have smart ass comments, jokes and it'll always go off topic!

MDave: "Take this to off-topic discussion or something.". What I'm saying seems to make complete sence to me. General = General comments and Dev's jump in, too.

I'm sure what I'm saying is not too unrealistic.

My comment was not an attack on anyone.

It doesn't fit in the Dev section because we aren't actually talking that great in detail about the lower levels of emulation like assembly, code, or organising a project for saturn emulation. It's general talk about what is available and what is technically possible for saturn emulation on the pandora, and it's most of all on-topic. Talking silly about who's opinion is better or worse regarding what old school gaming is doesn't belong in this thread, it's off-topic and no better then spam. Make a thread about that sort of stuff instead of derailing topics. I see it way too often here, need I remind you of the mess that was the Mupen64plus thread? It's a complete turn-off for those that want to read up on good discussion.
 
Last edited by a moderator:
Agree with MDave, and apologies for getting sucked in to one members ranting.

This topic is of great interest to many and Exophase's thoughts make for some good reading............and dreaming :p

Would be good to hear Notaz's thoughts on the subject.
 
Would there be any way of 'plugging in' adapted version Notaz's magic to Yaubase?
 
Yeah right, as if I had anything working (currently reported 32x compatibility is 0%). Those things take almost infinite time to do right, and I do get enough coding from my full time day job. And yet there MWeston asks to do some coding for pandora's battery monitoring chip.
 
notaz said:
Yeah right, as if I had anything working (currently reported 32x compatibility is 0%). Those things take almost infinite time to do right, and I do get enough coding from my full time day job. And yet there MWeston asks to do some coding for pandora's battery monitoring chip.

Do you have any compatibility with the interpretive version? Something that can be ran on a PC, presumably.

I have very gradually realized that the most painless way to do a recompiler is to get it synchronized to an interpreter in at least some form on both ends. This means doing an interpreter that only checks for interrupts after certain instructions, and you could end up with a lot of analysis you don't want in the interpreter depending on where you go with the recompiler. But it's not too bad to start with a baseline recompiler that conforms with something that's pretty easy to get in an interpreter.

Once you have things synchronized a binary search step will tell you where they diverge. It's tedious, but I'm solving most recompiler related problems this way these days.
 
Last edited by a moderator:
notaz said:
Yeah right, as if I had anything working (currently reported 32x compatibility is 0%). Those things take almost infinite time to do right, and I do get enough coding from my full time day job. And yet there MWeston asks to do some coding for pandora's battery monitoring chip.
Yupp. I bet it is hard to do a useful 32x Emulation for Pandora but I think it is much more easy than doing Sega Saturn Emulation. ^^

So I guess, the first goal is to reach playable 32x emulation before even thinking about Sega Saturn Emulation. The discussion alone is somehow funny. There is not even an really good working Saturn Emulator for modern PCs so I doubt the little Pandora could handle this complicated Console. There were good games for it but it wasn't THAT good console at all, other Emulators would pleasure the spread mass much more I bet. :)
And when I really want to play "Raidant Silvergun" onto my Pandora, we still have MAME. :D
 
Last edited by a moderator:
fusion_power said:
There were good games for it but it wasn't THAT good console at all, other Emulators would pleasure the spread mass much more I bet. :)

You obviously either didn't own a Sega Saturn, or didn't find out about the good games for it at the time.

http://www.racketboy.com/retro/2006/06/games-that-defined-sega-saturn.html
http://www.racketboy.com/retro/2007/03/best-undiscovered-sega-saturn-games.html

-God Ginrai
 
Last edited by a moderator:
Exophase said:
Do you have any compatibility with the interpretive version? Something that can be ran on a PC, presumably.
Yeah at least 50%. I switched to recompiler work when I reached that to prevent all this taking forever (and motivation loss).

Exophase said:
I have very gradually realized that the most painless way to do a recompiler is to get it synchronized to an interpreter in at least some form on both ends. This means doing an interpreter that only checks for interrupts after certain instructions, and you could end up with a lot of analysis you don't want in the interpreter depending on where you go with the recompiler. But it's not too bad to start with a baseline recompiler that conforms with something that's pretty easy to get in an interpreter.

Once you have things synchronized a binary search step will tell you where they diverge. It's tedious, but I'm solving most recompiler related problems this way these days.
What exactly are you comparing, some trace output? Large traces are painful to do on ARM, I tried using qemu on PC but it gets even slower on 2GHz core2 than on F100@200MHz (I guess because qemu keeps recompiling my translation cache; I've also hit some bugs in qemu itself which caused some headache).

My recompiler is doing quite well in simple (threaded interpreter?) mode with register caching/block linking/constant propagation stuff disabled. But the more analysis I attempt, the more bugs I see. It's of course my own fault of feeding the desire to make things faster and implementing new stuff without fixing all bugs first. There are ways to reduce amount of analysis and some bugs go away, however that makes compiler output completely different and not easily comparable.

When I did Cyclone I had it completely in sync with the MAME core, they were ran one after another in the emulator and complete state was automatically compared each time. There were special memhandlers for the second one so that when it runs it sees the same state that the first had. Now it's a lot more difficult (and I had enough trouble back then too).
 
Last edited by a moderator:
notaz said:
Yeah at least 50%. I switched to recompiler work when I reached that to prevent all this taking forever (and motivation loss).

Cool, that's encouraging. Good job.

notaz said:
What exactly are you comparing, some trace output? Large traces are painful to do on ARM, I tried using qemu on PC but it gets even slower on 2GHz core2 than on F100@200MHz (I guess because qemu keeps recompiling my translation cache; I've also hit some bugs in qemu itself which caused some headache).

No, I dislike comparing traces. I have command line commands and debugger commands that break after X instructions. When the break happens the register state is displayed (and some other info). I have two tabs in a terminal and switch between them rapidly to see if there are any differences between the two. If there aren't I go forward half a step (sometimes less, if it takes a long time to get there). If there are I start over. Eventually I find the point where they diverge.

notaz said:
My recompiler is doing quite well in simple (threaded interpreter?) mode with register caching/block linking/constant propagation stuff disabled. But the more analysis I attempt, the more bugs I see. It's of course my own fault of feeding the desire to make things faster and implementing new stuff without fixing all bugs first. There are ways to reduce amount of analysis and some bugs go away, however that makes compiler output completely different and not easily comparable.

I think you have to nail down the exact timing behavior and focus on making sure that works, and that the interpreter can be made to agree with it. The analysis should not be changing things such that a substantial (permanent) divergence is caused, if that happens you can consider it incorrect.

notaz said:
When I did Cyclone I had it completely in sync with the MAME core, they were ran one after another in the emulator and complete state was automatically compared each time. There were special memhandlers for the second one so that when it runs it sees the same state that the first had. Now it's a lot more difficult (and I had enough trouble back then too).

This approach is good if you can easily fit it into your code. It's certainly less tedious than manually binary searching to the divergence. Right now I can't easily do this because of how I'm threading different execution units - although everything has its own structures managing control flow between two emulation states is not trivial. I might use inter-process communication instead.

The only downside to the exact approach you mention is that there's a ton of overhead for comparing state after every opcode. A hybrid approach, that uses binary search like I described might be useful. At least until the search distance becomes sufficiently small.

I also recommend doing an x86 recompiler if at all possible. Then you synchronize the x86 recompiler to the interpreter and the ARM recompiler to the x86 recompiler. You'd get most of the bug fixing out of the way on the x86 side.
 
Last edited by a moderator:
@exophase:

sorry to interrupt this topic a little, but I had the impression you moved away from gpsp and don't work on any emulator. Now I realize the word "currently" in your posts and wonder what you are working on ;)
 
conso said:
@Exophase:

sorry to interrupt this topic a little, but I had the impression you moved away from gpsp and don't work on any emulator. Now I realize the word "currently" in your posts and wonder what you are working on ;)

It's a secret to everybody.
 
Last edited by a moderator:
Exophase said:
It's a secret to everybody.

Clearly, he's working on the new Zelda game for the Wii! Let the rumourmongering commence!
 
Last edited by a moderator:
If I had only been here to see the reply before the edit :(
 
Back
Top