Page 1 of 1

About the Project

PostPosted: Tue Sep 27, 2011 8:51 pm
by Phantom Full Force
Hello Bart, I've been following your progress for some time now and it's great that I and many other fans now have the chance to play these games for the first time in a near-flawless state. Means a lot to me since I haven't been able to play my favorite Sega model3 racers like Daytona 2 and Scud Race in years.

I hope this is the right forum for this. My name is Eric and I'm currently attending video game school in Orlando, Florida as a programmer. It's called Florida Interactive Entertainment Academy and it's quite good. However, I've only made quick glances over the source code and I can't make much sense of it. That's what I'm going to school for, I guess...

Mind if I ask some questions, like...what was your motivation or purpose for embarking on this project? How long did it take and what should you know to be able to do something like this? And ultimately, is there anything that a novice like me could do to help even the slightest? I'm usually busy with schoolwork anyway so I doubt I had the time/energy anyway. But for curiosity's sake, I'd like to know a little more from a programmer's standpoint.

Thanks again, nice work, Bart, Nik, the whole crew...

Re: About the Project

PostPosted: Wed Sep 28, 2011 8:15 am
by Arbee
Emulation generally requires understanding how computers work at an assembly language level. If you've done any assembly programming and understand the basic concepts like memory maps and how I/O works and that sort of thing, you're in good shape to grok things like Supermodel. If not (and certainly you don't need to know *any* of that stuff to program modern PC or console games, so it's entirely sensible if FIEA doesn't teach it), it's going to be a harder climb.

Incidentally, FIEA is a good program. And I don't just say that because I helped Tom Carbone with some of the curriculum back when it first started ;-)

Re: About the Project

PostPosted: Wed Sep 28, 2011 2:00 pm
by Bart
Phantom Full Force wrote:However, I've only made quick glances over the source code and I can't make much sense of it.


Reading other peoples' code is difficult, especially if you're still starting out. Keep at it. Start with simpler projects. Most importantly of all, take the initiative and try to develop your own code. The more you do in your spare time, the better. You have to learn how to learn; how to teach yourself, in other words.

Mind if I ask some questions, like...what was your motivation or purpose for embarking on this project?


Back in 2002 and 2003, Model 3 hadn't been emulated at all, so the motivation was quite simply to do that. I'd say Ville Linde and Stefano deserve more credit for that, though. I always wanted to see Supermodel running full speed on my system and wanted to use it as a platform to teach myself OpenGL and how to do a proper dynamic recompiler. I had to drop the project during my senior year of college and then, subsequently, grad school took over my life and 4-5 years went by without me doing any more serious coding. So late last December, during my winter vacation, I decided to resurrect the project partly to serve as a little code demo. I knew my skills hadn't atrophied too much, but I needed to actually be able to prove that.

How long did it take and what should you know to be able to do something like this?


It only took a couple weeks to get things running in late December/early January. This question would have been better addressed to me in 2003.

At that point, I was a sophomore in college and had been programming for several years. It wasn't until the very end of 8th grade (junior high) and through 9th grade (my first year of high school) that I really got started. Prior to that, I knew enough QuickBASIC to be dangerous. I originally tried learning C++ with one of those 'Teach Yourself in 21 Days' books but did not get very far with it. I didn't feel like I was really "getting it" when it came to pointers, for example. So I bugged the author, Jesse Liberty (IIRC), about it and he told me that I'd really have to learn assembly language to understand it. And so I did, and spent those 2 years playing around with NASM on DOS. Then, when I went back to C (teaching myself from the excellent 'A Book on C'), it instantly clicked and I realized I could now do what I had set out to do: graphics, games, and an emulator.

Genecyst and NESticle were all the rage back then, and I really wanted to learn how to do the same. I think I released 'Genital' during my junior year of high school, having learned a lot from looking at DGen's source code and the Starscream 68K core, and the rest is history. Given my unique last name, I really came to regret naming it that. Took a lot of effort on my part to scrub the Internet clean (enough) of that association :P

And ultimately, is there anything that a novice like me could do to help even the slightest?


On Supermodel? Unfortunately, probably not yet, unless you can figure out what's going on in the source and want to work on the front end of things (user interface type stuff). I don't think it's the best project to get started with, though. Emulating a proprietary arcade system is pretty arcane. I'd recommend getting into the gaming or mobile development scenes. A lot of action there these days...

Re: About the Project

PostPosted: Thu Sep 29, 2011 8:27 am
by Arbee
I'm a big fan of Jesse Liberty's books for O'Reilly (and pretty much anything ORA publishes in general).

Given my unique last name, I really came to regret naming it that.


Sardu was a pre-med student at the time, so using gross-out names for his emulators came naturally. You didn't really have an excuse ;-)

Re: About the Project

PostPosted: Thu Sep 29, 2011 9:46 am
by Bart
Arbee wrote:Sardu was a pre-med student at the time, so using gross-out names for his emulators came naturally. You didn't really have an excuse ;-)


Sure I do. I was an immature high school student living in a suburban bubble :)

Re: About the Project

PostPosted: Fri Sep 30, 2011 12:14 am
by Phantom Full Force
Arbee wrote:Emulation generally requires understanding how computers work at an assembly language level. If you've done any assembly programming and understand the basic concepts like memory maps and how I/O works and that sort of thing, you're in good shape to grok things like Supermodel. If not (and certainly you don't need to know *any* of that stuff to program modern PC or console games, so it's entirely sensible if FIEA doesn't teach it), it's going to be a harder climb.

Incidentally, FIEA is a good program. And I don't just say that because I helped Tom Carbone with some of the curriculum back when it first started ;-)


Ha, you know Tom Carbone? Yeah, he's a good guy. I'm doing alright in his classes. Right now we are going over just Assembly...we have to make a turret/shooting based game due in about two weeks. :o

Thanks for the comments, Bart. I'll have to learn more about programming as I go along...

Re: About the Project

PostPosted: Mon Nov 21, 2011 1:14 pm
by krsjoker
hi everybody! ,i have just registered and realy want to say a massive thankyou to Bart and co for this amazing emulator,i had got it up and running just 2 days ago and mainly only to play daytona usa and scud race which i am very impressed with the way they run.

once again thanks for this,you have the un devided attantion of every sega arcade fan on the planet.

kris