With Chris White, author of DCPhoenix
Interviewed by dc_emumaniac on 30-Jun-2001
B00B! Dreamcast Research: Hello Chris! Can you tell us about yourself, where you're from, and about your job, school, etc?
Chris White: Hi, I'm 21 years old and from London, England. I've just completed the second year of an AI and Computer Science degree in Birmingham. I'm currently working for Channel 4 (www.channel4.com) over the summer in the Information Systems department, and I previously worked for Cable & Wireless.
University is great, and being English, I have obviously spent most of my degree in the pub (and some of it rolling around in gutters). Apart from computers, my other interests include DJing, writing music and travelling. This summer I'm backpacking around Thailand, and I can't wait! I'm also going to plug my record that's out: http://www.alienwebshop.com/pointblank/recursion for ordering details and mp3 clips! haha ;)
B00B: How long have you been into computers and more specifically coding?
Chris: My first computer was a ZX Spectrum, which I received for my sixth birthday. I'd been after a computer for ages and I was thrilled to have a computer with colour and sound - I'd only really used a ZX81 beforehand which had neither! I programmed some simple stuff in BASIC, but as I was only six years old the maths behind a lot of the programming was too complex for me to grasp at this early stage. I bought my first PC in 1992, and coded very little for about five years. I spent these years learning the various operating systems, running a BBS, participating in various scene groups and trying some of the early emulators that were appearing at the time. I picked up programming again in 1996 after reading a C tutorial on the internet, and later coded a very simple spectrum emulator called ARSE (Another Ruddy Spectrum Emulator) using Marat's Z80 core. Since then, my degree in Computer Science and AI has encouraged/forced me to get coding again! :)
B00B: What made you choose the project you have worked on so far?
Chris: I fancied giving console programming a go and DC coding looked easy. Phoenix is always a good starting point because it's such a simple game to emulate. I used Darren Finck's Jabawape emulator as a basis, because it was really well documented and the code seemed pretty clean. Once my coders cable had arrived and I'd setup my development environment (actually an old laptop) I managed to get the emulator running on the DC within about 6 hours (this was DCPhoenix 0.1).
Darren actually contacted me after seeing DCPhoenix, and provided me with an updated version of Jabawape and helped explain a couple of areas of the code that I was unsure about. I encouraged him to get into DC coding, and he's now programmed his DCSI emulator which is great!
B00B: What problems have you had and how did you overcome then?
Chris: I didn't have too many problems as such, but porting the old allegro graphics routines to the DC involved digging out some old documentation. (Allegro is a free graphics library commonly used for programming DOS games). I also coded a simple malloc routine which caused me some problems, so I nicked one from Dan Potter, which of course worked fine. (malloc allocates blocks of memory).
The most irritating part of the project was actually programming the GUI! This turned out to be quite time consuming, with endless DC reboots in order to tweak elements to ensure it looked right.
I never really had time to research DC sound properly either. It's an area which is lacking documentation, so I'd encourage anyone who's mastered it to either produce a tutorial, or a nice library! DCPhoenix actually uses samples, which is a bit of a workaround...
B00B: With DCPhoenix do you see any updates on this rather great emulator?
Chris: Not for the moment. I stopped coding DCPhoenix, because it was pretty useable and I had a load of exams at university (don't worry I passed!) I'd prefer to concentrate on new projects myself, but it would be good to see someone else pick up the code and make improvements. Pop Flamer and Naughty Boy are two games which run on similar hardware to Phoenix, and the emulator could easily be adjusted to run them.
Darren actually sent me the following snippet of code, which squashes the Phoenix display to correctly fit the DC resolution. Currently the aspect ratio is correct, but this means that 16 lines are actually missing from the bottom of the display.
Basically in video.c, change the line which reads:
There are a couple of other changes which need to be made, but these should be pretty obvious from looking at the code.
B00B: Do you have any new projects in mind?
Chris: My final year project at university is going to be an arcade game emulator of some description and will be written from scratch. I'm currently reading a book entitled 'Programming the Z80' and have started coding a Z80 CPU emulator in Java. At the moment, I'll be concentrating on that but I wouldn't rule out other projects in the future. I did have a look into porting the System16 arcade emulator, but a lot of it was written in assembly and it would have been too time consuming to port. I'd be more than happy to collaborate with others on a project if there are any coders out there who are interested?
B00B: What is your favourite game for Dreamcast?
Chris: Shenmue seriously ate into my social life. Real life events began to remind me of Shenmue, even simple things like waiting at the bus stop. I even started to dream about Shenmue! How sad is that?! I've always loved Yu Suzuki's games, Out Run was my favourite game when I was younger, which he also produced. I loved Out Run so much that I bought the arcade machine and stuck it in my garage! It would be great to see it emulated on the DC.
Apart from that, I really don't play as many games as I should. A lot of the time I just enjoy playing games for a short period of time to check out how the technology has progressed and get a quick feel for them. I prefer playing games when I've got friends round and Virtua Tennis has proved a firm favourite recently. I have a confession though - I am absolutely crap at most computer games. I'm the laughing stock of my household because I do a Computer Science degree, but I'm consistantly beaten at everything! I'm actually quite good at Phoenix though, perhaps that's why I coded an emulator, so I could finally beat someone at a game! ;)
B00B: What is your opinion of the Dreamcast Scene and what would you do to improve it to make it more accessible?
Chris: I think the DC Scene is brilliant, and a lot of people have clearly devoted a lot of time to producing documentation, libraries, cd covers and websites. To improve the scene I'd encourage authors to release their source code. After all, we're all doing this as a hobby and we're not going to make any money, therefore releasing code will provide some of the most useful documentation going. I'm sure you've heard the open source arguments before, so I won't reiterate them here.
B00B: What is your view on the other new super consoles and the possibilitys of hobbyist development on them ie gba etc?
Chris: The GBA looks like the most promising platform for hobbyist development, although it's limited memory and CPU speed limits the type of emulator it can run. The GBA already has some nice games, a lot of them close to the Snes originals which can't be bad! I'm sure that Nintendo won't dissapoint with the Gamecube either, but let's hope that there are some good third party titles unlike the N64.
With regard to the PS2, even the official PS2 developers have apparantly been having teething difficulties with the platform and it doesn't seem as well designed as the DC. The price of the PS2 (£300 in the UK) has put me off for the time being, and I have been largely unimpressed with most of the titles I've played on the machine, although I've still to try GT3.
The XBox should be easy to develop for, because it's essentially a PC in console casing. I'm not a big fan of Microsoft, but in the past their hardware has been quite good, in contrast with their awful operating systems! MS are working with a lot of big developers, so I'm hoping to be pleasantly surprised.
B00B: May i say thank you for your time and good luck with your project on behalf of B00B and the rest of the emulation scene.
Chris: No problem! :)
This document/interview is Copyright © 2001 by B00B! Dreamcast Research and may not be reproduced in whole or part without permission.