Tuesday, 12 October 2010

Emulation resources

I just noticed that my bookmarks are beginning to get pretty substantial, and most of them are resources related to emulation. I've been far and wide on the net looking for documentation so I'll post them here. I hope someone finds them useful, or even just interesting.

(Too many links to post here, i'll post the important ones, you can find Nes docs easy anyway)
NES nocash docs
6502 reference

Super Nintendo
Programming the 65816
Snes programming tutorial
Snes graphics documentation

GBA_11.pdf (application/pdf Object)
Tonc: Whirlwind Tour of ARM Assembly
ARM ASSEMBLER PROGRAMMING; tutorial, resources, and examples
ARM7TDMI Tech manual
ARM7TDMI data sheet
CowBite Virtual Harware Spec
GBA Game development
GB/GBC Specs
Game dev
ARM Instruction Formats and Timings

Playstation 1
Everything you ever wanted.. (html)
Everything you ever wanted.. (pdf)

Playstation 2
Inside the Playstation 2: PS2 Architecture, Graphics Rendering and Programming
Procedural Rendering on Playstation
An Introduction to PS2DEV « Lukasz.dk
PlayStation 2 Architecture (pdf)  (takes ages to load)
A Technical Overview of the Emotion Engine
PS2 Basics
PS2BMP1.pdf (application/pdf Object)
Win32 PS2 Dev. Intro
Downloads - GSHI
MIPS Assembly
VPU Thesis (pdf) 

Nintendo 64
RCP64, Nintendo 64 Machine
Nintendo 64 Specifications
Nintendo 64 Tech
Nintendo64 Technical Information...

Sanity Warning 
HUGE emulator list and sources etc
NO$FUN (All NO$ docs)


Sunday, 10 October 2010

Be careful what you click!

This is not related  to emulation, but I feel that it's something that needs to be said. I think that Microsoft should do something about this huge weakness I have found in their operating system!

I hate viruses, most of us do, which is why I thought I'd have a try at writing one... just to see how easy it was for people to write malicious software. Turns out, it is very easy with just some basic coding knowledge.

In my opinion, the most destructive malware would be malware that deletes information from your computer, and what better information to delete from your computer than the Master Boot Record. For those who don't know what the MBR is, it is a small peice of code (512 bytes) that lies at sector 0 of your boot disk. This is the sector that the BIOS loads into memory for immediate execution after the post screen. It essentially boots up your operating system and usually loads the kernel and jumps to it. Without a valid Master Boot Record, your entire operating system is useless, removing the MBR effectively renders your OS useless, and unbootable.

However, there are steps you can take to repair your MBR, infact, it's very easy in modern operating systems like Vista or Windows 7. You just insert the Windows 7 system disk, and repair your operating system, however, if you do not know how to do this, or you have an older OS like XP, you are pretty screwed.

Which brings me on to this software I wrote. The virus I wrote (which I will never be using maliciously of course), replaces your MBR with my own custom MBR, which prints a little message to the screen instead of loading your OS. Keep in mind that I have created a few safe guards to make sure that I didn't click it by accident, I created some "Are you sure" messageboxes just to be safe, but if I took these away, this software would be very dangerous.

The executable needs to be run as adminstrator, but this is hardly much of a safe guard, as most users would probably be logged on as admin anyway.

I won't release this software or source code for now, unless anyone specifically asks for it, because there is always the chance that it could be used maliciously. It is however a very small file, and the source is very small, so be careful what you click.. or you might just get your MBR deleted. The Windows 7 and Vista UAC doesn't seem like such a bad thing to me anymore...

Saturday, 9 October 2010

PS2 Development

For ages now, I've wanted to develop my own programs/games for the PS2, and up untill today, I've had no luck in finding a straight forward, up to date enough tutorial. For anyone interested in PS2 dev, I would highly recommened this guide, and the pre-compiled PS2SDK mentioned in the tutorial, from here.

You can use the PCSX2 to run the resulting ELF files, on the file menu, "Open ELF file". 

Well, that's about all I have to say about that, I will be hopefully posting updates on my own emulators, although I have so much left to do.


Friday, 17 September 2010

GBA emulator progress

Progress with my GBA emulator is going relatively slow, as this is a much bigger project than I realised. Emulating the CPU is probably the hardest task and is taking ages, but I'm getting there, one opcode at a time.

As of next week, I am going to be studying 5 days a week, and also on the weekends, so I probably won't be working on my emulator, or updating my blog as much, so I apologise in advanced for any long absenses from me. I have to do well this year in my college so I can get into university, so I will obviously proritise that over my hobbies and and such.

Anyway, thanks everyone for reading, more to come soon.


Monday, 13 September 2010

Emulation - what's the point?

Alot of people ask the question, "why bother writing emulators? why emulate a system when you can own the original?" etc... The motivation behind it is obviously going to be different for everyone, but I'll try to convey my reasons for (attempting) to write emulators, successfully or usuccessfully. Be aware that these are my personal opinions and motivation, there are obvious real advantages to emulators, such as using them to test games that are being written for a system that requires some sort of media, such as CD/DVD's or cartridges to be written to. There are many other reasons though, such as virtualization of operating systems, you know, Virtual PC, VMware etc...

First of all, let me just state that in my opinion, writing emulators is not the most rewarding hobby if you want to see immediate results and get immediate satisfaction, it takes alot of work to get any tangable output from an emulator. For me, this in itself is good motivation, as when you do get something working in an emulator, it feels much more rewarding, like you've really achieved something.

The other reasons why I try to write emulators are simple, I enjoy programming, I enjoy games, and I enjoy learning exactly what makes computers "tick", put all those together, and emulation seems the perfect hobby for me, which it is. Sometimes it is maddening, sometimes it makes your brain hurt, but these are all things which are necessary sacrifices.

The final reason is that I find the emulation scene very attractive, and one day, i hope to write (or atleast contribute to) an emulator that will actually be useful to someone, and not just a learning project for me. I look up to the authors of all emulators, but especially ones like the PCSX2, and Dolphin. One day, maybe I'll be knowledgable enough to do something to help out... *bwwwww*

At the end of the day, i do it because i personally find it fun, i would imagine that all emulator authors feel the same way, or else we wouldn't seen such an amazing amount of them out there today. I remember seeing a thread on the PCSX2 site, stating reasons why the authors chose to write the PCSX2, they said that they wanted to prove that PS2 emulation was possible, and they succeeded in that i think we all agree, but i digress.


Friday, 10 September 2010


I have a question for all you readers, as this is something that I seem to be struggling with recently. What keeps you motivated and focused?

It seems that i am not alone in this problem, I think it's fairly common amongst programmers for their mind to wonder every now and then. What keeps you motivated?

Of course I'm talking about anyone here, not just programmers.

Wednesday, 8 September 2010

Another blog

I just added a new blog page, which will be for posting (C++) code snippets, but I may post some tutorials too. The link is at the top of the page in the top menu bar, below the title. Hope it's useful to someone, enjoy :)

Code Snippets