Archive for the ‘Software Development’ Category

IGDA Quality of Life

Monday, February 28th, 2005

The IGDA held a panel discussion covering Quality of Life within the games industry and what we, as developers, can do about the perceived problems that the industry is facing. I was there with my video camera (unfortunately for you people) and managed to capture almost the entire event.

igdala.PNG

Wednesday, 9th of February the IGDA Los Angeles chapter held a Quality of Life discussion, kindly hosted by Tim Langdell & USC. The meeting was well attended with a large mix of students and professionals taking part in the discussion. Main speakers were Tom Sloper and Jeff Lander, with additional contributions by Jim Charne and myself. Other people contributed during the discussion but I didn’t get everyone’s names.

The video quality isn’t great. Various reasons. I could not locate the shoe for my tripod so I had no way of setting up my video camera properly. The camera wound up balanced on top of a computer monitor. There’s a lot of the tops of people’s heads in the frame. As we all know, cameras and I do not get on well together.

No matter which side of the lens I happen to be on.

I’ve posted the video as a link here for those interested in reviewing it. Jason DeLaRoca (I hope I spelt his name correctly) will be speaking about this subject at Game Developers Conference 2005, March 7th to 11th in San Francisco.

Just in case you aren’t aware, there will be another IGDA Los Angeles gathering this Thursday, the 3rd of March, at the Art Institute in Santa Monica in the “big room.” Initiative Media will be giving a presentation on Media Opportunities for Game Development. There will also be a panel discussion on in-game advertising.

The Art Institute, Santa Monica is located at 2900 31st Street, Santa Monica, CA 90405. The meeting is scheduled for 6:30PM. Prior to the main meeting there will be a short talk given by a member the Art Institute that you are invited to attend.

You do not have to be either an Art Institute student or an IGDA member to attend this meeting. Attendance is free and there is ample parking (street parking is best as it is free.)

DOWNLOAD

Click here for the video (WMV) of the IGDA Quality of Life discussion.

Warning: This video is 95MB in length and runs for approximately one hour & thirty minutes. I suggest you download to your local computer before attempting to play the video.

Otaku No Yaroze

Tuesday, July 30th, 2002

A failed attempt to get an underground development book published. I managed to sell this idea with a quick ten word pitch in an elevator. It then took me 5 months to write it and the publisher another 5 months to get around to telling me that it wasn’t going to be published. At least they paid a small lump sum up front which was nice.

PREFACE

otaku_no_yaroze_cover_small1.jpg

There are more than 100 books on Java on shelves today and not a single book on programming the PlayStation. The reason is that Java is open, and Sun want you to know about it. The PlayStation is a closed system, Sony would rather you never even think about what goes on inside it just so long as you buy software for it. This means that the only people who ever get to program the PSX are an exclusive few, professionally employed programmers under strict non-disclosure agreements. It’s important for Sony to protect their intellectual properties but if you purchased a Ford pick-up and were told you were not allowed to lift the hood, even as a fully qualified garage mechanic, you’d soon look elsewhere for your transportation needs. What I hope to do is give insight in to how to program the PlayStation, to the actual operation of the console, what each component does, and how those separate parts make up one of the best 32-bit consoles available today.

This book assumes you already know how to program and what a compiler is. It holds your hand while you get your feet wet in console development but it does not teach you how to write good code or how to create 3D rendering engines, there are a lot of excellent books out there that do a very good job of that.

There are a number of reasons to reveal the PlayStation internals. Back in the old 8-bit days people who owned computers as a hobby or used them in their day job would have thought you deranged had you suggested that the company who manufactured a particular machine didn’t want you to know anything about it. What would be the point of owning it? Atari started a trend of jealously guarding and hiding information with the release of their Atari 2600 VCS games console and the trend is continuing, with alarming increase. The only open platforms available today that a hobbyist programmer can tinker with is Windows, Mac or Linux. Big, beige boxes that are not much fun. I’m not advocating that Sony, or any other company, give away their hardware or software for free, if they did that then I’d be out of a job, but restricting people from experimenting and tinkering with a computer system with the use of contracts and the threat of legal action can only hurt the companies involved and the products they sell.

I had some reservations about writing this book. I still do. This book reveals cutting edge secrets: knowledge that can easily be abused. Nonetheless, I have come to the conclusion that a book like this is necessary if a whole generation of programmers is to experience the excitement of programming a console.

WHAT’S IN THIS BOOK

This book is intended to be used constructively. It divulges secrets and knowledge that can further your career and knowledge of programming, get you a fun, well paid job doing something you really enjoy or just let you create something that no one else has done before. You won’t find information on how to copy PlayStation games or how to defeat the copy protection on the CD-ROM discs.

WHAT’S INSIDE

Part I: The PlayStation Hardware

Part I is an introduction to the PlayStation hardware and internals. You learn about the various sub-systems that make up the PlayStation beginning with the MIPS R3000A CPU at the heart of the machine. How the MDEC decodes data streams to put movies on the screen, how the SPU produces audio and how sound from the CD and SPU is mixed, the role of the GPU and how the GTE interacts with it to display fantastic 2D and 3D rendered graphics. It concludes with information on the various I/O connections on the external casing of the PlayStation.It is not necessary to understand the physical PlayStation hardware in depth, and knowledge of electronics is completely unnecessary but a thorough grounding in the principles of each sub-system will enable you to push the console to it’s limits. It’s often helpful to know what’s going on inside of the GTE or GPU to get the maximum available polygons on screen at once and pipeline stalls in the processor can be avoided with an understanding of how instructions are dispatched and the memory is handled.

Part II: How to Build Your Own Yaroze

Part II reveals how to put your own Yaroze together and communicate with a host computer. Where to get the various parts, the software tools required, and documentation available.

Part III: How to Program the PlayStation

Building on your knowledge of programming from other computers and operating systems this chapter teaches you how to get the most from a PlayStation.

  • PlayStation Libraries and the PSX-OS
  • MIPS R3000A Assembler
  • Transforming models with the GTE
  • Displaying graphics with the GPU
  • Playing streaming movies with the MDEC
  • Memory organisation & layout
  • CD-ROM file system
  • Saving and restoring data on the Memory Cards
  • Reading the Digital and Analogue Joypads
  • Handling the Rumble Joypad
  • Communicating with another Playstation
  • Playing music and samples with the SPU

Part IV: Appendices

Part IV provides several handy reference appendices for those skills you learn in Part III.

Nintendo Gameboy Advance Cribsheet

Thursday, November 1st, 2001

Looking for all the relevant information on programming the Nintendo Gameboy Advance? Then it’s here. I’ve collected and collated all of the publicly available information that various people have reverse engineered into a single handy resource designed for printing out and keeping next to your keyboard.

nintendo_gameboy_advance_sp1.jpgThe Gameboy Advance Cribsheet was put together to fill the same need of the Gameboy Cribsheet. All of the information concerning hardware registers, ARM & Thumb op-codes, memory organisation, DMA timings and lots of other details is spread out across hundreds of e-mail messages, multiple books and many good, but usually incomplete documents found on the Internet.

The Gameboy Advance Cribsheet would not be possible without the diligent work of programmers everywhere working towards understanding and reverse engineering the hardware so many thanks go out to them all.

DOWNLOAD

gba_cribsheet1.pngThe Gameboy Advance Cribsheet is designed specifically for printing on high quality laser or inkjet printers. It was never designed to be viewed on-screen.

To obtain the best results from printing make sure you use the best quality paper you can obtain that has minimum bleeding. “High Gloss” is a good choice but you must be sure to remove the sheet from the printer the moment it has finished printing and allow it to dry for several minutes to prevent smudging.

The Gameboy Advance Cribsheet is only available in Adobe PDF format.

Download the latest colour version of the Gameboy Advance Cribsheet (v1.1)

M.A.M.E. Emulator for Microsoft XBOX Update

Friday, July 20th, 2001

xbox_mame_21.jpgThis is a brief update to a previous article I posted about porting M.A.M.E. to the Microsoft XBOX. I have managed to remove just about all of the bugs in the rendering code.

It’s even a little faster than it was before.

I’ve fixed all the blown out colour & gamma problems and the sizing issues of the screen.

Apart from about a dozen games that have incorect colours everything runs just perfectly. MetalSlug X looks superb now that it has the correct colour palette. The bugs in Microsoft’s latest 7.0 C++ compiler I managed to work around by just tuning the optimisation parameters for those particular source files.

Sound works. A little glitchy on one or two drivers. Nothing that’s too annoying.

I’ve implemented code to handle the analogue sticks so that games like Crazy Climber and Karate Champ can be played as they were meant to be with dual joysticks. I’ve also implemented code to handle the four joypads, so that you can play four player Gauntlet and three player Rampage.

I’ve implemented a simple menu system that scans the hard drive at start up for available M.A.M.E. ROMs and displays them in a list that lets you rapidly scroll through to select the game you want. Also figured out a reset emulator bug that was annoying me that would prevent you returning to the menu system. Turns out the bug was in beta 14 of the M.A.M.E. source code that has since been fixed in the beta 16 release and it just required an update to my M.A.M.E. sources. A few other latent bugs got fixed automagically by taking care of that. The emulator runs on both the silver Alpha hardware and the “final” debug stations just fine, in case you were wondering.

Now if only Microsoft would let me legally distribute this software I’d be a happy person. Unfortunately, only registered Microsoft XBOX developers can legitimately obtain this software (okay, apart from the fact that only registered XBOX developers actually have an XBOX that can run the software at the time of this writing).

Here’s another like about porting M.A.M.E. to the Microsoft XBOX just in case you missed the one at the top.