I've started rewriting the underlying resource loading code to better handle multiple versions of the game.
To help with this I'm writing a WinForms-based resource browser.
(That's the only real Quake-related change visible in the above screenshot. I've written a cinematic (.cin, used in Quake 2) loa…
To help with this I'm writing a WinForms-based resource browser.
(That's the only real Quake-related change visible in the above screenshot. I've written a cinematic (.cin, used in Quake 2) loa…
The current design of the Quake project is that there are a bunch of classes in the Data namespace that are used to decode Quake's structures in a fairly brain-dead manner. To do anything useful with it you need to build up your own structures suitable for the way you intend on rendering the level.…
Quote:Original post by ScetThe unofficial Quake specs are a bit confusing on this matter. To get the size of the texture, find the bounding rectangle for the face (using the horizontal and vertical vectors to convert the 3D vertices to 2D in the…
Looks nice, I could never figure out Quakes lightmaps.
Quote:Original post by RavuyaHeh, you might like the Killer Quake Pack. [grin]
Eventually I gave up on my mod (double shotguns).
I've added some primitive parsing and have now loaded the string table, instructions, functions and definitions from progs.dat but can't do a lot with them until I work out…
Quote:Original post by Evil Steve
Yup, I've done soem QuakeC modding before. The progs.dat is basically all the game code, and quake.exe is all the engine code. if you can load progs.dat properly, you should be able to get behaviour exactly like the original Quake.
Progs.dat is responsible for all mo…
Quote:Original post by Evil SteveI'm not sure either (I haven't looked into it). As the source code for Quake and the QuakeC compiler ha…
Do you intend to parse the progs.dat file (I think that's what it was called) - the QuakeC compiled code? I've no idea what's actually involved in that, however...
Quote:Original Post by ScetAn XNA Quake implementation the way I intend on working - that is, to start from scratch - is not really worth it (as far as getting the gameplay 100% identical to DOS Quake).
Do you plan on making anything out of it, or will it just be a bsp viewer?
As a learning project, …
After pratting around with DOOM with MDX, it's logical to move up to Quake with XNA. After all, the levels are "true" 3D, and there's a healthy amount of new textures (including bump and gloss maps) so that it would make creating an advanced engine easier. My problem is always finding resources.
On …
On …
Edit: The following code has a bug in it. Please make sure you use the corrected code!
After a conversation with Thevenin regarding the Game class in XNA not letting you use event-driven keyboard input (useful, for example, for entering text) I rolled out this monstrosity.
After a conversation with Thevenin regarding the Game class in XNA not letting you use event-driven keyboard input (useful, for example, for entering text) I rolled out this monstrosity.
/* * * * * * * * * * * * * …
The TI-83+ lacks something the 84+ series has - a USB port.
Enter the VMusic2. This low-cost (GBP25) module offers a USB host controller with a simple serial interface that can be used to read/write FAT-formatted USB mass storage devices. It can also play MP3 files straight from the drive!
This is al…
Enter the VMusic2. This low-cost (GBP25) module offers a USB host controller with a simple serial interface that can be used to read/write FAT-formatted USB mass storage devices. It can also play MP3 files straight from the drive!
This is al…
I take a strange enjoyment in reading format and protocol documentation, and I find it to be one of the most rewarding tasks. Hence the Sega emulator project, the DOOM project, the Vgm2Midi project and so on.
This project is more hardware related - it's an infrared remote control library for the TI-…
This project is more hardware related - it's an infrared remote control library for the TI-…
This post got me wondering about a TI emulator. I'd rather finish the SMS one first, but so as to provide some pictures for this journal I wrote a T6A04 emulator (to you and me, that's the LCD display driver chip in the TI-82/83 series calculators). In all, it's less than a hundred lines of code.
Th…
Th…
No updates for a while, I'm afraid - things have been pretty hectic.
I packaged up and released the Sega Tween demo I'd been working on. As you can see, I added an SMS and a 3D mode - this works with the SMS 3D glasses. The extra 3D is quite cheap to calculate - shift the rotated X coordinates one w…
I packaged up and released the Sega Tween demo I'd been working on. As you can see, I added an SMS and a 3D mode - this works with the SMS 3D glasses. The extra 3D is quite cheap to calculate - shift the rotated X coordinates one w…
I've been wanting to attach an SMS control pad to my PC (and be able to use it to play games with) for a while, so put in an order from those excellent chaps at Rapid for the parts needed.
The joypad (as I've now learned from disassembly) is very primitive - 6 normally-open switches, each connected …
The joypad (as I've now learned from disassembly) is very primitive - 6 normally-open switches, each connected …
I have returned to the MDI view for this project which makes life easier when it comes to putting in debugging tools. For the moment all there is is a palette and tile viewer, but I hope to add some helpful utilities - and work out a way to tie the new Brass and an emulator together for debugging a…
I've added some support for the SG-1000, Sega's first? home video game console.
The Master System's VDP is a modified TMS9918, and so most Master System games run in its extended 'Mode 4' setting. That was the only video mode, therefore, that I'd emulated in any form.
For some reason, the older compu…
The Master System's VDP is a modified TMS9918, and so most Master System games run in its extended 'Mode 4' setting. That was the only video mode, therefore, that I'd emulated in any form.
For some reason, the older compu…
The VDP can generate two different types of CPU interrupt.
The first, and easiest, is the frame interrupt, which is requested when an entire frame has been generated. This is requested, therefore, at a regular 60Hz in NTSC regions and 50Hz in PAL regions - it's a useful timer to synchronise your gam…
My existing implementation of the standard mapper used the values $1FFC..$1FFF in RAM as the paging registers. This is incorrect; from what I can now tell the paging registers are only updated if you write to the $FFFC..$FFFF range, and isn't anything to do with the RAM anyway (the fact that they e…
The Z80 CPU uses 16-bit addressing, which limits it to a 64KB address space. As well as fitting the program ROM into this space, we need to fit in the machine's 8KB RAM, limiting us even further.
To get around this limitation, the memory is broken down into a series of windows ("frames"), and you ca…
The old layout of the emulator was a bit of a mess.
The Z80 emulator needed to sit inside a class of your design that inherited from IHardwareController (and so exposed methods to handle hardware devices) and another that inherited from IMemoryDevice that exposed methods that could be used to read a…
One chap I cannot thank enough is CoBB for all his hard work in the Z80 field.
I've rewritten the Z80 emulation from scratch; this time it uses an expanded switch block (the 'manual' way) to decode instructions. Rather than write every combination of instructions out by hand, the code making up the …
I've added better memory emulation (that is, handling ROM paging, RAM mirroring and enabling a BIOS or not). I wouldn't dare say "more accurate", as that might indicate that something about it is partially accurate. [smile]
I've isolated one of the biggest problems - and that's programs getting caug…
I downloaded a collection of homebrew releases from SMS Power! for testing. Here are the obligatory screenshots.
Sega Master System
Copyright Violation is displayed incorrectly - the text should be on top of the stars, but that VDP feature is as yet unsupported.
Sega Game Gear
Yes, W…
Sega Master System
Copyright Violation is displayed incorrectly - the text should be on top of the stars, but that VDP feature is as yet unsupported.
Sega Game Gear
Yes, W…
The Z80 core is now a bit more accurate - ZEXALL still reports a lot of glitches, and this is even a specially modified version of ZEXALL that masks out the two undocumented flags.
The VDP (Video Display Processor - the graphics hardware) has been given an overhaul and is now slightly more accurate.…
The VDP (Video Display Processor - the graphics hardware) has been given an overhaul and is now slightly more accurate.…
A long time ago I thought I'd try my hand at this emulation malarkey.
The hardware is the Z80-based Sega Master System and Game Gear.
Due to the design, it was a huge, messy, poorly written series of hacks that could just about produce the above result if you didn't breathe too hard.
After finding thi…
The hardware is the Z80-based Sega Master System and Game Gear.
Due to the design, it was a huge, messy, poorly written series of hacks that could just about produce the above result if you didn't breathe too hard.
After finding thi…
In light of the TMDC, I thought I'd package up the .NET class for easy text-mode graphics I'd been throwing together.
Click for big
Once initialised, all you need are two things; the Graphics object it provides to handle your drawing, and the Refresh() method to update the console with whatever it is…
Click for big
Once initialised, all you need are two things; the Graphics object it provides to handle your drawing, and the Refresh() method to update the console with whatever it is…
This is a standalone application I've been sporadically working on which will be bundled with Latenite, but is perfectly usable away from it.
It's a plugin-extendable document browser. You can use it to manage a library of documents and display them in the tabbed browser on the right. It comes with …
It's a plugin-extendable document browser. You can use it to manage a library of documents and display them in the tabbed browser on the right. It comes with …
Thanks for the support, MrEvil, and thanks for noticing my rather dead tutorials section, linkofazeroth. [smile]
Sadly, I've been horribly busy recently - and so very little progress on any project. However, Brass 2 is starting to come together...
Can you guess which device the code is for?
Well, it'l…
Sadly, I've been horribly busy recently - and so very little progress on any project. However, Brass 2 is starting to come together...
Can you guess which device the code is for?
Well, it'l…
Both Latenite and Brass are getting a significant upgrade - and both are being written from scratch.
Both will sport a plugin-based architecture. This is most obvious with Brass - where pretty much everything - be it an assembler plugin or output plugin - can be extended by writing your own custom p…
What's that in the bottom left hand corner?
Kerm Martian has added a PS/2 port to his calculator (click the picture for better pictures and the original thread). He has been developing a shell, entitled DoorsCS (click for website) which sports an impressive set of GUI controls - hence the mouse!
Kerm Martian has added a PS/2 port to his calculator (click the picture for better pictures and the original thread). He has been developing a shell, entitled DoorsCS (click for website) which sports an impressive set of GUI controls - hence the mouse!
Advertisement
Popular Blogs
Advertisement