PDA

View Full Version : Retrogame #1 -- Paku Paku



deathshadow
14-02-2011, 11:21 AM
*** UPDATE *** version 1.6 released

Adding early stages of general MIDI and MT-32 support. (still very WIP, but cool none-the-less)

Official Site Page:
http://www.deathshadow.com/pakuPaku

Version History
http://www.deathshadow.com/pakuPaku_Revisions
(massive changes in 1.6)

Direct Download links:
http://www.deathshadow.com/downloads/paku_1_6.rar (59k)
http://www.deathshadow.com/downloads/paku_1_6.zip (67k)

Preview image:
http://www.deathshadow.com/images/pakuMenuThumb.png
Click for Larger (1024x768 - 17.1k) (http://www.deathshadow.com/images/pakuMenu.png)

Play it Live with jDOSBox (requires java)
http://www.deathshadow.com/pakuPakuLive

I've begun working on a number of retrogames -- old school DOS games written using Turbo Pascal 7 and assembly, leveraging many modern tools and using DosBox as the testing environment...

But here's the catch... the target minimum system? a 128K 4.77mhz CGA equpped 8088... as in the real deal, genuine hardware. Basically I want these games to work on everything from a modern octa-core monster inside DosBox right down to the original IBM 5150 circa 1982.

The first part was how to handle the graphics -- let's face it, 4 color CGA SUCKS -- but there is the 'undocumented' 160x100 16 color mode. Problem with that is EGA/VGA support, but after investigating I found one solution that was OK... so I expanded it with a big of my EGA knowledge to work almost perfectly on newer cards. The unit I created to handle that ended up being my entry into the 2011 Retrochallenge "winter warmup"

I took that unit and ran with it to make a pac-man ripoff... which in the past five days has gone from 1.0 to 1.3 as various bits got swapped around and optimized (lowering the system requirements from a 8mhz AT back down to my original target).

Includes the full TP7 source code, a readme file in HTML, etc, etc...

Here's some screencaps of it in it's 160x100 16 color glory.

changes from 1.2 to 1.3:

1. Added Joystick Support
2. Tracking of five most recent high scores
3. Saving of high scores to disk
4. New font renderer uses less memory and sped up menu.
5. Fixed bug with MCGA detecting as VGA
6. Fixed audio 'buzz' on PS/2 speakers
7. Fixed PC Jr. blink/intensity not being set right (maybe)
8. Memory footprint down to 67k

System Requirements
4.77mhz or faster 8088
128k of RAM (67,584 bytes free in DOS)
CGA,Tandy/PcJr, EGA or VGA video

System Recommendations
Tandy/PcJr, C/MS Game Blaster
or Adlib sound

Enjoy.

Some screenshots:

Joystick Calibration
http://www.cutcodedown.com/retroGames/betaReleases/screens/joyCalibrate_thumb.png
Click for larger View (800x500)
(http://www.cutcodedown.com/retroGames/betaReleases/screens/joyCalibrate.png)

New Main Menu
http://www.cutcodedown.com/retroGames/betaReleases/screens/mainMenu_thumb.png
Click for larger View (800x500)
(http://www.cutcodedown.com/retroGames/betaReleases/screens/mainMenu.png)

Gameplay
http://www.cutcodedown.com/retroGames/betaReleases/screens/gameplay_thumb.png
Click for larger View (800x500)
(http://www.cutcodedown.com/retroGames/betaReleases/screens/gameplay.png)

Of course I feel like a right stupid twit -- been promoting the game on various sites for days, and who do I forget to even mention it on? A PASCAL GAME FORUM that I've been a member of for years... DOH!

Had several people comment on how hard it must be to work in such a low resolution -- which is funny because for me 160x100 is high resolution compared to the 128x48 of the Trash-80 Model 1 or the 128x96 of the TRS-80 Coco. (sure the coco could do 128x192, but it was too slow for anything with more than two or three sprites). Hey, if 160x96 was good enough for the Intellivision to be entertaining, why not?

Oh, and if anyone has suggestions -- particularly spots where I could speed up the code I'd love to hear it... or if anything just go over my adlib support, which is pretty dodgy. (while my Tandy/Jr Sound and C/MS support is spot-on)

paul_nicholls
14-02-2011, 10:26 PM
Wow! That looks absolutely filled with juicy, retro-filled goodness! I'm going to have to try it :)

Keep up the excellent work mate :)

cheers,
Paul

de_jean_7777
15-02-2011, 12:02 AM
Man, this reminds me of my TP days. Awesome stuff.

Darthman
15-02-2011, 07:21 AM
The only words is wow and awesome... Keep it going.

deathshadow
09-11-2011, 07:10 AM
As the edit to the first post says, version 1.6 released, this time adding MT-32 and other GM device support. The MIDI sound is still a bit rough, and if the synth you send to doesn't support a 24 semitone pitch-bender range it's outright disastrous, but still shows a lot of promise.

Keeping the executable size under control proved interesting, I never realized Turbo Pascal's WRITE/WRITELN commands were so wasteful on memory... but I'm probably one of the few people trying to keep a 128k machine with DOS 3.2 as a viable minimum target.

Biggest under-the-hood change came from my having various lists now run as pointers to objects instead.

Lazy Game Reviews (http://www.youtube.com/watch?v=G66KL-hxxKI&) put out a youtube video about it last week too... where he mentions the CMS/Game Blaster support not working on his blaster 1.5 -- I think I tracked down that bug to my using word-width writes to handle register/data pairings, and not sending the 'enable chip' bit set after each note out... worked on a 1.0, but not a 1.5 and not on 286/higher. I think the narrower bus on the 8088 is what was making the word-width port outputs function properly. (since high/+1 goes first).