I got an actual (Free)DOS machine up and running and have some dev tools on it, so I'll be using that for development and testing. Had I not done that I would be using 86Box instead.
Oh yeah, machine specs:
- Model: HP Brio 8314
- CPU: Covington! Slot 1 266 MHz Celeron (P2 era)
- Chipset: i440EX + PIIX4E
- RAM: 256 MB PC133 (chipset maximum, likely being clocked at 66 MHz)
- HDD: Some 4 GB drive, or is it 8 GB I'm not sure, either way it's slow and sometimes loud... but from a read speed perspective I can also use a disk cache
- Graphics: S3 Trio64V2/DX, 2 MB RAM (will not be using SVGA so the first 256 KB is all I'll be using, and this chip does support the VGA wraparound!)
- Sound: PC speaker, Sound Blaster 16 (semi-PnP variant), 14.4k modem
- Network: D-Link NE2000 clone
- Screen: Some Sony LCD TV, which is fine except when I want to use a 640x350 mode in which case it clips the right side off
- Mouse: PS/2, Logitech ball mouse with scroll wheel (will be using the CTMOUSE driver if I use this!)
- Joystick: Currently none, but maybe I'll find the Logitech Wingman 3D that we might still have as that's the only thing I've got that supports gameport (yes, this box has USB, but no I will NOT be programming a driver for it)
And some decisions:
- Development tools: fasm 1.x - if I change my mind it'll be Turbo Pascal 7
- Code model: Single code segment, single separate data segment, I don't feel like hosing my code segment thanks... but I do need to remember to keep constant strings in the data segment
- Game type: Platformer
- Graphics:
- Mode 0Dh 320x200x4bpp with the default EGA palette - I could opt for Mode 13h 320x200x8bpp to speed up development time
- Assuming a VGA chipset (NOT an EGA chipset) just so I can use Write Mode 3 where necessary
- Drawing algorithms: Pondering a few, which will probably not be optimised for the slowness of an actual VGA card:
- Tile rendering: 16x16 + 8x8; solid 4bpp + transparent 4bpp + transparent 1bpp (for fonts); aligned + unaligned
- Sound: PC speaker. Maybe FM music if I have time. I am not going to attempt to do PCM audio on the SB16, that card is a bit too easy to overwhelm.
And of course some references:
- Ralf Brown's Interrupt List
- VGADOC4b (not because it's accurate, but because it's convenient)
- Various EGA, VGA, SVGA datasheets (IBM's EGA reference has a schematic which can clarify some behaviours; some SVGA datasheets explain things that IBM clearly didn't)