SitePoint Sponsor

User Tag List

Results 1 to 22 of 22
  1. #1
    Non-Member bronze trophy
    Join Date
    Nov 2009
    Location
    Keene, NH
    Posts
    3,760
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    What I've been doing in my 'off time' -- making games for DOS

    Yes, I said DOS... More specifically with a minimum target of a original 4.77mhz 8088 PC with 128k of RAM and a CGA card as the minimum target. Just to make it harder, it all has to fit on a 160k floppy. On my requirements list was also to support as many sound cards as I could, and to scale well right up through to VGA video and ghz class processors.

    I released the last update to it back in March, and since then have made some heavy rewrites, code cleanup, and even added more sound card support in the form of MIDI.

    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:

    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:
    		<!-- [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>
    Fun stuff. It runs in the seldom used and semi-undocumented 160x100 16 color semi-graphics mode. Semi-graphics is a old computer term for doing graphics using text characters... in this case I take the 80x25 text mode, and use the extended ASCII 0xDD character which has one half filled in with foreground color, the other half background color. I then reprogram the video card to think characters are one quarter the height they should be (revealing just the top few scanlines of each row) netting me that 160x100 graphics. To my knowledge, only Tunneler, Round 42 and Moonbugs attempted to use this trick, all of them are painfully slow, and only Tunneler works on anything newer than a CGA card... It's one of the myths about this graphics mode is nothing new supports it... I hate myths... part of why I did the graphics unit for this as my 2011 Retrochallenge Winter Warmup entry.

    Runs just fine in DOSBox on modern systems too -- which actually has had an unusual side effect; there are DOSBox ports for EVERYTHING -- there's even a JAVA port of DOSBox -- so by making a DOS game, I've made it cross-platform ready!

    It's already proving popular in the retrocomputing community -- great video review of it was put up by Lazy Game Reviews and there are others showing it running on a variety of hardware -- from PS/2 model 30 to an Amstrad 1512, and even a FPGA re-implementation of a 8088 PC. I should probably put together a video of it on my Tandy 1000 HX.

    Fun stuff, just thought I'd share since in addition to the new release, I've revamped my website.

  2. #2
    Non-Member bronze trophy
    Join Date
    Nov 2009
    Location
    Keene, NH
    Posts
    3,760
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)
    Oh, and my bad on the live jdosbox copy not working -- I forgot I had JAR files blacklisted...

  3. #3
    SitePoint Member
    Join Date
    Dec 2011
    Posts
    2
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    hahaa..... cool game I have played in it.... And like it...

  4. #4
    SitePoint Wizard bronze trophy Immerse's Avatar
    Join Date
    Mar 2006
    Location
    Netherlands
    Posts
    1,661
    Mentioned
    7 Post(s)
    Tagged
    1 Thread(s)
    Eep! http://www.deathshadow.com/pakuPaku gives a HTTP 500 Infernal Server Error!

    But that game looks pretty fun

  5. #5
    Non-Member bronze trophy
    Join Date
    Nov 2009
    Location
    Keene, NH
    Posts
    3,760
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)
    Moved to new hosting (no longer running my own server/scaling back/retiring from doing work for others)... it's proving... annoying since it's got that cPanel crap sitting between me and doing things properly...

    Working again... basically cPanel completely shtupped my custom .htaccess that's run just FINE the past month... All because it was too stupid to insert one extra carriage return; apparently cPanel screws up if you don't leave an extra blank line at the end of every .htaccess editing manually and then you change something panel-side... Wow, that's annoyingly stupid. Try to turn on "fancy indexing", break the entire blasted site. Genius.

    Starting to remember why I stopped using this panel idiocy six or seven years ago.

  6. #6
    Robert Wellock silver trophybronze trophy xhtmlcoder's Avatar
    Join Date
    Apr 2002
    Location
    A Maze of Twisty Little Passages
    Posts
    6,316
    Mentioned
    60 Post(s)
    Tagged
    0 Thread(s)
    I am shocked Jason, malformed XHTML markup in the README.HTM and a closing </codE> tag you must have been having a bad typo day. ;-)

  7. #7
    Non-Member bronze trophy
    Join Date
    Nov 2009
    Location
    Keene, NH
    Posts
    3,760
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)
    Nah, I just typed that in using DOS edit and did most of the testing in Arachne... NOT my usual dev environment.

  8. #8
    SitePoint Wizard bronze trophy Black Max's Avatar
    Join Date
    Apr 2007
    Posts
    4,029
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)
    Still hoping someone will do a worthy successor to Starflight.

  9. #9
    Non-Member bronze trophy
    Join Date
    Nov 2009
    Location
    Keene, NH
    Posts
    3,760
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)
    For those of you who keep asking, you need to download jDOSBox to... well... run the pre-built jDOSBox version. (which CAN also be mounted and run in normal DOSBOX)
    http://jdosbox.sourceforge.net/

    VERY cool project -- and thats coming from someone who usually HATES Java based stuff. Porting DOSBox to Java? Now that's an impressive undertaking especially since as far as I can tell, it's a one man show.

    I put together a little tutorial on how to put a DOS game into jDOSBox a few weeks ago... to run my game in it, just download the pre-built archive and skip to step 3.
    http://www.deathshadow.com/jDOSBoxHowTo

    A website I frequent, RGB Classic Games has put several DOS games (including mine) up on their site in jDOSBox... and they have even more games available for download to run locally - unlike most DOS game archive sites everything on there is LEGAL having gotten permission from the author or license holders - and we're not just talking shareware demos. (Though plenty of those are in there too).

    I've wasted WAY too much time playing Silverball the past few weeks

  10. #10
    Avid Logophile silver trophy
    ParkinT's Avatar
    Join Date
    May 2006
    Location
    Central Florida
    Posts
    2,329
    Mentioned
    191 Post(s)
    Tagged
    4 Thread(s)
    This is an outstanding piece of work.
    To those who have said, "DOS is dead!", you have proven them Dead Wrong!
    Don't be yourself. Be someone a little nicer. -Mignon McLaughlin, journalist and author (1913-1983)


    Git is for EVERYONE
    Literally, the best app for readers.
    Make Your P@ssw0rd Secure
    Leveraging SubDomains

  11. #11
    Non-Member bronze trophy
    Join Date
    Nov 2009
    Location
    Keene, NH
    Posts
    3,760
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by ParkinT View Post
    To those who have said, "DOS is dead!", you have proven them Dead Wrong!
    Thanks to tools like DOSBox and jDOSBox, it's even had an unexpected side effect...

    My games are cross-platform.

    In addition to jDOSBox opening the door to anything that can run JAVA, there are native ports of DOSBox to almost every platform out there... and not just the versions on the official site. There's even ports for iPhone and Android.

    Who needs fancy VM's for cross platform development, when you can just write a DOS game and run it in a open source emulator?

    Oh, my next game I'm hoping to have done within the next month -- it's a mashup of several of the "invaders" clones; Phoenix, Gorf, Defense Command, Demon Attack -- taking the best bits from each and putting my own spin on them.

    Preview pic of my WIP sprites for the next game


    It's actually quite challenging at this oddball 160x100 resolution to make sprites -- I'm basically working in a 8x6 area where only 7x6 of it is actually "useable" due to how I have to map the sprites to memory. This new game is going to be pushing 16 sprites around the screen at once WITH 32 single pixel 'stars' scrolling in the background -- which is right on the edge of the physical limit a 4.77mhz XT could handle!

    It's actually where slower machines with less capable CPU's like the TI-99/4a or Commodore 64 had a slight advantage; their video generators had hardware sprites meant for making games. The original CGA in a 1982 PC? Not so much... gotta do everything by hand from software... REAL fun in a pixel-packed format.

    See the sprite write to backbuffer routine I'm currently working with:

    Code:
    function buffer_write8(tile:pPixelData; x,y:byte; height:word):word; assembler;
    asm
    	les  di,backBuffer
    	mov  ah,y
    	xor  al,al
    	shr  ax,1
    	mov  bx,ax
    	shr  ax,1
    	shr  ax,1
    	add  bx,ax
    	mov  al,x
    	xor  ah,ah
    	add  bx,ax
    	shr  bx,1
    	push bx { our return value and buffer offset all in one }
    	add  di,bx
    
    	mov  cx,height { do this before we screw with SI! }
    	mov  dx,76
    	push ds
    	lds  si,tile
    	and  al,1
    	jnz  @oddTile
    	add  si,48
    @oddTile:
    
    @loop:
    	mov  bx,es:[di]
    	lodsw
    	and  bx,ax
    	lodsw
    	or   ax,bx
    	stosw
    
    	mov  bx,es:[di]
    	lodsw
    	and  bx,ax
    	lodsw
    	or   ax,bx
    	stosw
    
    	add  di,dx
    	loop @loop
    
    	pop  ds
    	pop  ax { the buffer offset is our return value! }
    
    end;
    or even blitting that backbuffer tile to the screen (backbuffer prevents flicker).

    Code:
    procedure buffer_show8(buffer:pointer; screenOffset,height:word); assembler;
    asm
    	mov  ax,$B800
    	mov  es,ax
    	mov  di,screenOffset
    	shl  di,1
    	inc  di
    	mov  dx,ds
    	mov  cx,height
    	mov  bx,153
    	mov  ax,76
    	lds  si,buffer
    @loop:
    	movsb
    	inc  di
    	movsb
    	inc  di
    	movsb
    	inc  di
    	movsb
    	add  di,bx
    	add  si,ax
    	loop @loop
    	mov  ds,dx
    end;
    Ah, the joys of working in Assembler; even if I am cheating and using Turbo Pascal as glue... a lesson I learned from working with PHP. Optimize what needs to be fast (like a database) then glue it together with a high level language (like PHP or ASP)

  12. #12
    Avid Logophile silver trophy
    ParkinT's Avatar
    Join Date
    May 2006
    Location
    Central Florida
    Posts
    2,329
    Mentioned
    191 Post(s)
    Tagged
    4 Thread(s)
    Ah. I have always loved Turbo Pascal. Borland created the best compilers in the world!
    Turbo Pascal accepts inline ASM so elegantly.
    Don't be yourself. Be someone a little nicer. -Mignon McLaughlin, journalist and author (1913-1983)


    Git is for EVERYONE
    Literally, the best app for readers.
    Make Your P@ssw0rd Secure
    Leveraging SubDomains

  13. #13
    SitePoint Member Tigari's Avatar
    Join Date
    Dec 2011
    Posts
    2
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    i Love pacman :>

  14. #14
    SitePoint Zealot behati's Avatar
    Join Date
    Feb 2012
    Location
    Copenhagen, Denmark
    Posts
    152
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Haha I love how people go back to the roots.. This relaly makes me want to dig out my first PC, which would boot up in DOS with the option to boot Windows 3.11 if needed, but mostly I just used DOS!

    I had a game called Leisure Suite Larry, where you had to answer a set of multiple choice questions to show that you were 18. With the questions being in English (and me being an 8 year old Danish kid at the time) I was sort of lost, untill I figured out that the questions were always the same.. 10 minutes and a cheatsheet later I was chatting up dodgy women in a dodgy Bar.. good times!

  15. #15
    SitePoint Wizard bronze trophy Immerse's Avatar
    Join Date
    Mar 2006
    Location
    Netherlands
    Posts
    1,661
    Mentioned
    7 Post(s)
    Tagged
    1 Thread(s)
    Quote Originally Posted by behati View Post
    Haha I love how people go back to the roots.. This relaly makes me want to dig out my first PC, which would boot up in DOS with the option to boot Windows 3.11 if needed, but mostly I just used DOS!

    I had a game called Leisure Suite Larry, where you had to answer a set of multiple choice questions to show that you were 18. With the questions being in English (and me being an 8 year old Danish kid at the time) I was sort of lost, untill I figured out that the questions were always the same.. 10 minutes and a cheatsheet later I was chatting up dodgy women in a dodgy Bar.. good times!
    Haha, an ex-colleague of mine once told me he learnt English from the Larry games, when he was still very young.
    I think his parents didn't really realize what the games were about

  16. #16
    Robert Wellock silver trophybronze trophy xhtmlcoder's Avatar
    Join Date
    Apr 2002
    Location
    A Maze of Twisty Little Passages
    Posts
    6,316
    Mentioned
    60 Post(s)
    Tagged
    0 Thread(s)
    Off Topic:

    Oh dear! Larry had some very dubious intentions; I hope he didn't use them to pick-up girls... actually Larry was apparently good at [attempting] that.

    He probably learnt: "Hi, my name is Larry; Larry Laffer"

  17. #17
    SitePoint Zealot behati's Avatar
    Join Date
    Feb 2012
    Location
    Copenhagen, Denmark
    Posts
    152
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by xhtmlcoder View Post
    Off Topic:

    He probably learnt: "Hi, my name is Larry; Larry Laffer"
    No no, the game was full of learning resources! Take the shady casino where the basics of gambling away your money on pixelated jackpot machines were taught, or the rules of human relations when you picked up a woman with a questionable profession and married her in a 24/7h neon-lit chapel!

    But more seriously, it was a command-type game, so you did have to learn to type valid commands such as "Open Door" or "Steal Jewelry" - and if you walked it into a dark alleyway you were beat by homeless men which caused you to lose, a valuable lesson for any kid!


    Sorry for wandering off topic - but DOS games just had it all

  18. #18
    Non-Member bronze trophy
    Join Date
    Nov 2009
    Location
    Keene, NH
    Posts
    3,760
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by behati View Post
    But more seriously, it was a command-type game, so you did have to learn to type valid commands such as "Open Door" or "Steal Jewelry" - and if you walked it into a dark alleyway you were beat by homeless men which caused you to lose, a valuable lesson for any kid!
    This was even more true before graphics were added to them. The old Infocom adventures like Zork or Planetfall, the various Scott Adams adventures, The TRS-80 classics like Bedlam and Raaka Tu...

    Where you were? Explained as text. Interacting with it? Text. It meant *shock* using your imagination, learning to understand English, AND learning how to type.

    WEST OF HOUSE
    You are standing in an open field west of a white house, with a boarded front door.
    There is a small mailbox here.

    >_

  19. #19
    Robert Wellock silver trophybronze trophy xhtmlcoder's Avatar
    Join Date
    Apr 2002
    Location
    A Maze of Twisty Little Passages
    Posts
    6,316
    Mentioned
    60 Post(s)
    Tagged
    0 Thread(s)
    >_

    > open mailbox
    Opening the mailbox reveals a leaflet.

    > read leaflet
    (taken)
    "WELCOME TO SPF!

    SPF is a forum of adventure, danger, and low cunning. In it you will explore some of the most amazing territory ever seen by web mortals. No browser bookmark should be without it!"


    >

    Cannot imagine where "Maze of twisty little passages" originates from either. True classics and hence why I still do TTY for NetHack when competing in the annual tournament. >;-)

  20. #20
    SitePoint Zealot behati's Avatar
    Join Date
    Feb 2012
    Location
    Copenhagen, Denmark
    Posts
    152
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Oh man, those were the days!

    > Take kitchen knife
    > Attack
    > Attack
    > Attack
    > Attack
    Error: The person is dead.
    > Cheer
    > Open Door

  21. #21
    SitePoint Member
    Join Date
    Mar 2012
    Posts
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Its look good and more fun. I like it

  22. #22
    SitePoint Member
    Join Date
    Feb 2012
    Posts
    14
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks! I would definitely try this one. Are you working on another game as of the moment?


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •