Page 1 of 2

Paku-Paku -- UPDATE V1.6 -- 9 November 2011

Posted: February 8th, 2011, 5:54 pm
by deathshadow
* NOTE * Version 1.6 released!!!

This update brings a new home for it on my programming page, the early attempt at MIDI for the MT-32 and GM synths,

The recommended minimum system is a 4.77mhz CGA equipped 5150. Because the game uses that oh so wonderful undocumented 160x100 16 color CGA mode REAL CGA owners say hello to Mr. Snow while at it.

Much like "tunneler" support for that graphics mode has been added for the EGA/VGA card, though by default I reprogram the CRTC to use the legacy "EGA on a CGA monitor" video mode. Should this not work, a "/safe" command line option has been added to use the same technique as "tunneler" (and the associated problems of EGA being off-aspect and some VGA's being in 9 dot mode)

Sound support includes PC Speaker, Tandy/PcJr, C/MS (and Game Blaster), Adlib and MIDI, preferably the MT-32... believe it or not the best sounding of these is actually C/MS followed closely by the tandy support. As there is no known method of auto-detecting C/MS cards you have to specify it's use with the "/cms" switch. Adlib and Tandy should auto-detect, and if all other methods fail, you can enjoy the ear-bleeding hell of PC Speaker.

So...

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

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:
Image
Click for Larger (1024x768 - 17.1k)


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

If you want the prebuilt .zip file for running it in jDOSBox with a custom .conf file included, you can get that here:
http://www.deathshadow.com/jdosbox/paku_1_6.zip

Which can be embedded easily into a web page with the following (valid HTML/XHTML) code.

Code: Select all

		<!-- [if IE]>
			<object
				classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" 
				 width="640" height="400"
			>	
		<![endif]-->
		<!-- [if !IE]>-->
		<object
			type="application/x-java-applet"
			width="640" height="400"
		>
		<!--<![endif]-->
			<param name="code" value="jdos.gui.MainApplet" />
			<param name="archive" value="jdosbox_applet.jar,paku_1_6.zip" />
			<param name="param1" value="-conf jar://dosbox.conf" />
			<param name="param2" value="imgmount e jar://paku_1_6_160k.IMA -t floppy" />
			<param name="param3" value="e:" />
			<param name="param4" value="paku /cms" />
			<p>
				This game requires Java to function. Please either enable it in your browser, switch to a Java capable browser, or download the appropriate version off of
				<a href="http://www.java.com">Oracle's Java Website</a>
			</p>
		</object>
I mostly created just to see how far I could push the 160x100 graphics mode... since Round42, moonbugs and Tunneler are aging poorly. It was really interesting trying to cram the 8x8 tiles and 16x16 sprites of the original into 3x3 and 5x5 area's respectively.

... oh, and the COMPLETE Turbo Pascal 7 source code is included in the archive - as I'm releasing it to the public domain as cardware. So long as I am credited as the original author, maybe a nice back-link to where you got it from... send me a post card (address in the readme.htm and in the game) --- you can do what you like with it.

Re: Paku-Paku -- a new DOS game?

Posted: February 8th, 2011, 8:32 pm
by DOSGuy
As a person who hates clones, may I just say that this is an awesome game, and an excellent addition to the site. It's great to see a CGA 160x100 game from any era, let alone one that was created in 2011!

I did find a bug, though. I hit 30000 points as I was eating the last pellets in the maze, and the 1-up sound got stuck and continued playing into the next level, and didn't stop until I lost a life.

Re: Paku-Paku -- a new DOS game?

Posted: February 8th, 2011, 11:20 pm
by deathshadow
Oops, I see it in the code, that's on voice 3 and I'm only resetting voices 1 and 2 on a level change... Something to add for version 1.1.

I should probably just be calling my "kill all sound" routine on level end as a safety measure.

You'll probably like my next game even more, since it's not really going to be a clone of any existing game though it's taking ideas from several different side-play games (choplifter, defender, r-type, thexder)

I'm arguing withy myself over making that one, or another game that's going to be called "Warrior Zero" that, well... will be interesting given how much I want to stuff into an AT class game.

-- edit -- Version 1.01 released to fix that bug. If you downloaded it earlier in the day, grab the new copy. Same URL.
http://www.cutcodedown.com/retroGames/paku_1_0.rar

Re: Paku-Paku -- a new DOS game?

Posted: February 9th, 2011, 5:24 pm
by DOSGuy
I just tried out 1.01 and I noticed something that I hadn't noticed previously. The game doesn't pause and show a point value when I eat ghosts or fruit if Sound is set to Off. Is that intentional?

Re: Paku-Paku -- a new DOS game? UPDATE V1.2

Posted: February 10th, 2011, 2:15 am
by deathshadow
Nope, that was another mistake -- I actually caught that with version 1.1 yesterday, but tonight I went and redid the entire renderer code from scratch. The TARGET system is now a 7mhz XT clone like a tandy 1000, though the game plays just fine all the way back to the IBM 5150... so long as it has a CGA or better color card, it's now fully playable on pretty much every DOS machine. The sprite flicker and slowdown issues are now a thing of the past. In fact it's such an improvement I stripped out all the vsync code as well as the system speed test.

Though the cost of that improvement ended up being an increase in memory use to the tune of 16k. Instead of trying to work directly with the screen I set up two 8k back-buffers. One holds the map, the other the section I draw a ghost over is copied into it, the ghost is drawn there, that buffer is then copied to the screen (overscan copy to erase the old sprite position), then I erase the sprite from the middle buffer in anticipation of the next loop.

MAJOR improvement to the game's performance on lesser machines. It's effectively flawless now on my Tandy 1000 EX and my SX... and while a bit quirky it's entirely playable on those systems when set to "slow".

http://www.cutcodedown.com/retroGames/paku_1_2.rar

Rock and Roll... Though here I thought I was done with it. I'm sure there are other minor bugs, but for the most part I'm hoping to move on to making my next game.

Re: Paku-Paku -- a new DOS game? UPDATE V1.2

Posted: February 11th, 2011, 6:17 am
by DOSGuy
It looks like this will no longer work on a 5150 (PC), since the 5150 came with either 16 or 64 KB of RAM. It should work fine on the 5160 (XT), which initially came with 256 KB.

I've just added a feature that causes the high score to be saved into a file on the disk. I wrote the code in Pascal, but I could also do it in ASM if that would be better. I don't know if you want this to be an official version or not.

While playtesting, I noticed that the ghosts stop becoming edible as of the 5 keys level, though they do still run away for a second (this happens in original arcade game as well). Ghosts are edible again in 6 keys, but never again afterwards.

I found the frightTime variable in the source code, and I see that frightTime jumps in level 6, 10 (and somewhat in 11), 14, and the ability to eat ghosts is restored for level 18. The game seems to be generous about the effect of power pellets in the second level of each group of 4. Is that a feature of the original Pac-Man game?

Re: Paku-Paku -- a new DOS game? UPDATE V1.2

Posted: February 11th, 2011, 6:57 pm
by leilei
Extremely minor irrelevant hardware bug

there's a blue line stranded on the left side of the screen on ATI Rage Pro chipsets

Re: Paku-Paku -- a new DOS game? UPDATE V1.2

Posted: February 12th, 2011, 3:18 pm
by deathshadow
DOSGuy wrote:It looks like this will no longer work on a 5150 (PC), since the 5150 came with either 16 or 64 KB of RAM. It should work fine on the 5160 (XT), which initially came with 256 KB.
the 5150 could go to 256 on-board with the right chips, and there was the memory card that could add up to 384k more... which is how the max RAM on a 5150 is 640k.
DOSGuy wrote: I've just added a feature that causes the high score to be saved into a file on the disk. I wrote the code in Pascal, but I could also do it in ASM if that would be better. I don't know if you want this to be an official version or not.
ASM is for heavy lifting inside loops... Saving the score on game exit is a single operation, so that can stay pascal so long as it doesn't need the DOS unit (which it shouldn't).

I had this on the planning list for 1.3 which should hit either late tonight or tomorrow, including letting the user type in their initials. (I'm thinking I'll allow the same 8 char width as the scores are displayed). I'll look at how you handled it.
DOSGuy wrote: While playtesting, I noticed that the ghosts stop becoming edible as of the 5 keys level, though they do still run away for a second (this happens in original arcade game as well). Ghosts are edible again in 6 keys, but never again afterwards.

I found the frightTime variable in the source code, and I see that frightTime jumps in level 6, 10 (and somewhat in 11), 14, and the ability to eat ghosts is restored for level 18. The game seems to be generous about the effect of power pellets in the second level of each group of 4. Is that a feature of the original Pac-Man game?
It is -- in fact that table of values is lifted straight from the "Pac man dossier".
http://home.comcast.net/~jpittman2/pacm ... l#LvlSpecs

As I mentioned 1.3 should arrive later today or early tomorrow. It adds a few more optimizations, a better font renderer that swings a giant axe at that 'colorize' nonsense eliminating menu issues on slow systems, makes the twin buffer code a bit cleaner and removes redundancies, uses the twin-buffer to handle the 'level end' flash which is fast enough you don't see the 'redraw' on old systems, the save to disk high score feature... and adds joystick support.

Anyone have any other feature suggestions for future versions? (that I will like be incorporated into any future games I write)

Re: Paku-Paku -- a new DOS game? UPDATE V1.2

Posted: February 12th, 2011, 3:22 pm
by deathshadow
leilei wrote:Extremely minor irrelevant hardware bug

there's a blue line stranded on the left side of the screen on ATI Rage Pro chipsets
This is common on some EGA/VGA cards in this graphics mode. If it's particularly troublesome the /safe switch will eliminate it.

It stems from said cards using non-standard CRTC timing values for their 640 modes, and starting the horizontal draw too soon... I could increase the blanking period time, but that would break many other cards by them not showing much of the first row of characters.

I'm looking into reading from the VGA BIOS Data area to see if the values are different. If I put together a little program to dump what should be the correct values, would you be willing to guinea pig that for me?

Re: Paku-Paku -- a new DOS game? UPDATE V1.2

Posted: February 13th, 2011, 8:03 pm
by deathshadow
So you know, 1.3 is 'ready' though I'm holding it in beta until I hear back from some PcJr folks on a video issue. (the DOS blink/intensity bit seems to still be in blink for them)

Once they check in, I'll post links to the 'final' release. For now, here's some screencaps of the new menu with the high scores, and the joystick calibration screen.

Joystick Calibration
Image
Click for larger View (800x500)

New Main Menu
Image
Click for larger View (800x500)

Gameplay
Image
Click for larger View (800x500)

The new requirements/recommendations are as follows:
System Requirements
4.77mhz or faster 8088
128k of RAM (67,584 bytes free in DOS)
CGA,Tandy/PcJr, EGA or VGA video

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

I had a joystick slowdown issue on the 4.77mhz machines -- I was reading the joystick as often as my timer tick (120 times a second) when it only needed to be called before each frame update. Moving it to one tick before the redraw/logic update eliminated the slowdowns.

I'm going to break up the game logic across timer ticks to make it a bit more efficient on playing the sounds -- sounds and keyboard being the only things that need to be updated that often.

Re: Paku-Paku -- a new DOS game? UPDATE V1.2

Posted: February 13th, 2011, 9:23 pm
by DOSGuy
Looking good! I look forward to trying it out.

Re: Paku-Paku -- a new DOS game? UPDATE V1.2

Posted: February 13th, 2011, 11:31 pm
by leilei
deathshadow wrote:C/MS Game Blaster

:!:

Re: Paku-Paku -- a new DOS game? UPDATE V1.3

Posted: February 14th, 2011, 5:52 am
by deathshadow
1.3 Is now released to the public.

http://www.cutcodedown.com/retroGames/paku_1_3.rar

To sum up the changes:

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.

I had thought I had the slowdowns with joystick enabled dealt with on 4.77mhz machines, but there can still be occasional lag at certain points in the game. It's not a gameplay breaker, but it's not as smooth as a 7.15mhz or faster machine will deliver. Leaving joystick disabled it runs just fine on the slower clock speed.

Re: Paku-Paku -- UPDATE V1.4

Posted: March 5th, 2011, 3:38 pm
by deathshadow
So here's version 1.4 -- changes in this release include incorporating the fixes from the last batch of testing executables, and improving joystick handling by dividing up the two read routines to be called during timer ticks were not a whole lot else is going on. Spacing the two reads apart gives certain joystick interfaces (like that on the PcJr) that fail to discharge the capacitors when they aren't fully charged time to 'normalize' after reading one axis.

Basically if you try on some machines to read X and then immediately read Y the Y value will be all messsed up. Some people check that all bits on the interface are set, however that technique will hang certain machines like the tandy 1000 or a machine with the original PC gamecard if the second joystick isn't plugged in...

So instead of just sitting there waiting, I'm doing roundtable reads -- update the screen, read joystick X, run game logic, read joystick Y... lather, rinse, repeat.

DosBox and fast machine users won't really see much difference -- PCjr, Tandy 1000 and original 4.77mhz PC owners will notice much smoother gameplay and more reliable joystick control.

Unless something major comes along as a problem, and unless I figure out why some CGA's meant to drive a LCD don't work with it, this is probably the final release of this game.

In other news, I've started preliminary game logic code for my next release which has the working title "Offense Command" which is going to be a bit more robust a redo/mashup of Moonbugs and the old TRS-80 Model 1 "defense command".

I've also been working on some sprites and animations for it:
Image
Some of those are original, others are loosely based on the old TRS-80 "invaders" as seen in games like Attack force, Defense Command, Galaxy Invasion, etc, etc. I just gave them more frames and color.

Re: Paku-Paku -- UPDATE V1.4

Posted: March 8th, 2011, 9:48 pm
by ThreeHeadedMonkey
Very nice! Please do keep us posted!