Sigflup: Hello everybody, my name is Sigflup Synasloble and welcome to our show! In this episode of Hacker Public Radio we're going to be talking to Oerg, one of the programmers of the new ground-breaking Sega Genesis (or Sega Mega Drive) demo, Overdrive. This is the best demo I've seen so far and the Mega Drive scene needs to be a little more mature. We are a young scene and there aren't too many demos for it, and so this ground-breaking demo really really sets the bar and I hope to see future demos that are quite like this. Let me play it for you and after that we'll get on to the interview. I want to apologise a little bit because you can hear me breathing. I had my mic on too loud and I talked to Oerg in mumble so I apologise for the sound of my breath. But let's get to the demo and then we'll get to Oerg. Sigflup: Hello everyone we're with Oerg, part of the programming team for the new Mega Drive demo called Overdrive which we just played for you. This is a demo right, so it's visual, and the link is in the show-notes too (the actual demo), so you can download it or watch it on YouTube or something like that. How are you doing today Oerg? Oerg: I'm fine thanks for asking me, how about you? Sigflup: I'm doing pretty well, a little lacking on sleep [laughs] but apart from that I'm doing well. So how did you get into the Mega Drive scene? Oerg: Well I started programming for the Mega Drive in 2009 and I have been interested in the system since around 2006-7, mostly by influence from the Sonic hacking scene which got me started, and later it progressed. Basically it's been a lot of fun because the videos that I saw on YouTube about Genesis programming and the availability of the tools at the time was already pretty good I would say. There was a BASIC compiler so I just decided to start doing things. Sigflup: Really there's a BASIC compiler? That's amazing. Who did the BASIC compiler? Oerg: A guy called Joseph Norman, he's a Mega Drive software and hardware wizard. One of the original ones in the internet age I would say. He basically turned his mega drive into a computer - wrote a BASIC interpreter, compiler and all these kinds of crazy things. He's a really nice guy. Sigflup: Ah okay. So on to the demoscene. When was your first demo for the Mega Drive? Oerg: With the aforementioned BASIC compiler I made a pretty terrible demo which I released in 2009 at a party called Breakpoint and yeah the responses were mixed [laughs] and leaning slightly towards the bad side but that's to be expected so I decided to move on from then. Sigflup: What was the name of it? Oerg: It's called Sega Point I think. Sigflup: Yeah Sega Point. You did the music I take it? Oerg: Back then I really had no-one else to work with I just did everything myself, I wrote terrible code [laughs] and I did Microsoft Paint graphics and some music. Sigflup: Uh-huh. What did you do the music in, out of curiosity? What program did you use? Oerg: TFM Music Maker by Shiru, it's a pretty nice program and it was the only one at the time that had a replayer on the Sega Genesis that was actually usable. Sigflup: So what other demos have you produced for the Sega Mega Drive, what was your next demo? Oerg: The next one I think was (off and on) a music player for the Genesis (and Mega Drive) called SMPS-play its a player for the music format used in the Sonic the Hedgehog used on the Mega Drive and then the real demo after that was MDEM's First which I worked on together with a guy called Jorge Candeias, who's Portuguese. Sigflup: I see you also had some part in Project MD. What part did you have in Project MD out of curiosity? Oerg: Well apart from testing and other minor stuff I did the music for the game and tools for the sound engine. Sigflup: The music is really wonderful. Let met play a track from Project MD. We'll be right back. Sigflup: You just told me while we were listening that this is your favourite track. Why is it your favourite track? Oerg: I started re-writing the music tools that I had previously done for the sound driver, and it supported a lot more effects and things like that so I just think it sounds a lot better than all the other tracks in the game. Sigflup: So how long have you been working with Titan? Oerg: Around I would say, I can't really remember the exact time, but I think it was somewhere around April of 2012 -ish. Sigflup: Now were you working on overdrive before that? Oerg: Before we disbanded MDEM we already made a few concepts and ideas, and also wrote a tiny bit of code for our next MDEM but none of it really got applied to overdrive so I would say no. Sigflup: I see you're not working with Jorge anymore. what happened there? Oerg: Well we sort of both had some issues where I had to finish school and Jorge had to finish university, there were lots of exams for him. He just couldn't make time for any demo coding so we kinda just couldn't do anything. Sigflup: I'm not familiar with this other programmer to be honest with you. Did you recruit him or was he part of Titan? Oerg: Well we were a lot of people working together and I was approached by one of the guys who was not a coder but more like a graphician and musician, who basically suggested me to join - well first of all he asked if I had a group and would like to come join Titan and I said "Well, we have MDEM which is kinda on ice right now" but he said "Okay we could make a collaboration demo" and after a while we just decided that all the members of MDEM that were left should join... and that was just me [laughs] Sigflup: [laughs] I see. What was it like working with the Titan graphicians? Oerg: It was absolutely fantastic, we basically only had to tell the graphician (Alien^PDX by the way) "We need graphics for this, and it needs to look like this this, and this" and ten minutes later he would already deliver a concept that you could use, or he would even pixel at work if he had to. It was really fantastic yes. Sigflup: Did you lead the direction of Overdrive or did the graphician lead the direction or was it more of an equal relationship, leading the demo? Oerg: I would say it was rather more of an equal relationship. Sometimes it would happen the one way around and sometimes it would happen the other way. While Alien^PDX was still experimenting with the graphics format that this console uses, he would make all kinds of really really awesome stuff and some of it was so awesome that we used it in the demo and other times we just were working on effects using - I like to call them 'coder graphics' which are fillers that look terrible but yeah we just asked for new graphics and he would just give them to us immediately. Other times it was just other members of the group suggesting things, and we would just sort of agree to each other and we would start coding the effect for it and Alien^PDX would start making the graphics and our musician Str0be would just start making the music for it, and that's how it worked basically. Sigflup: How did Alien^PDX give you graphics? was it just through graphic files and then you did the conversion or how did that work exactly? Oerg: We stumbled upon a graphic tool called Pro Motion. It's on Windows only I think but it's a tool that is aimed at pixel artists, I would say, and you can do all kinds of limitations and you can set it up to work exactly with all the colour palettes that the Mega Drive would use, so he actually pixelled with the colour restrictions that the console had and he would export bitmap files that could be one-to-one mapped to the console colours. Sigflup: That's pretty cool that there's a programmer out there that works at the restrictions of the Mega Drive. I've always worried about that [laughs] to be honest with you. Oerg: It's a common problem yes. Sigflup: I have a few questions about a couple of the effects. I'm wondering first of all if it was your effect, the 512-colour effect. I'm wondering how the animation is done. Was it a lot of memory or did you recompute things on the fly? Oerg: I didn't make the effect, it was made by fellow groupmember Kabuto and he basically saw the original DMA 512-colour scene and thought "Well this can do a lot better" and then he delivered, basically. To make this work in full resolution we had to work around a lot of timing problems and the music couldn't get stuck at all. We couldn't afford that. So we also had to not use any DMAs in that scene because the sound engine accesses 68k address space all the time and so we had to not do that, ideally. It's basically like a raster loop that waits for the blanking to start, because the horizontal interrupts begin just a tiny bit too late for us to do what we want, and the timing isn't reliable. So we just do a hard raster loop and the advantage of that is that we neither break music nor do we break sprite display. We actually can display a few sprites on the screen while doing this, so there were a lot of advantages and I think we rotate between three palettes that we reload dynamically. Sigflup: The next effect that I was wondering about, again if you had any part in it, was the 3D chequerboard effect. Do you know what I'm talking about? Oerg: Yes it was towards the end where we also displayed the credits and this scene is unique in two ways. Well, first of all I didn't make it either - it was also made by Kabuto. It was originally an after-thought so to say, which we wanted to implement first as a hidden part that you could access with a code or something but after one of our coders Sik made the original version which was just scrolling in one direction with no zoom at all, Kabuto sort of took it and made it like you see in the demo - and just for fun I guess, or because he could, he made a realtime text renderer which rendered the credits text at an angle. I'm not too sure about the internal specifics, I haven't had time to study it because of deadline pressure but he basically does rendering of the background tiles. He just basically renders them at whatever zoom level he specifies which of course can be manipulated in realtime every frame. he renders them at the adequate size and just loops them, though that minimizes the work that has to be done and then if necessary updates the nametable for it. That's basically how it's done. Sigflup: The music on it sounded very sample-heavy. How did you make the sound, out of curiosity? Oerg: This might sound a little odd but it's the exact same sound driver as used in Project MD. It's just very optimised at sample playback and the way we achieved this quality (it's still not as perfect as it could be) is that we were able to get Sik, who made the driver (which is open source) to work with us. I spent a lot of time trying to optimise the sample playback because when there were huge DMAs it would slow down and stuff like that. To try and work around that was very hard but in the end we managed to do that and ramp up the sample rate to about 13khz and that's all we did - we basically use all the open source tools which we already released for the sound driver. Sigflup: Are there any interesting effects that you've done that you want us to take note of before we leave? Oerg: Ooh, that's a hard question! Sigflup: [laughs] Oerg: I think what I liked the most of what I did was the horizontal twister near the beginning. Sigflup: Oh yes that was very nice, I really liked that. Oerg: It done by modifying all of the vertical scroll RAM indexes in the horizontal interrupt, and that's all it was basically. Sigflup: Okay. Yeah it was very pretty. Thank you for interviewing with us. Oerg: No problem, thank you for having me. Sigflup: Yeah, thanks for working on the Mega Drive. You do awesome work!