Panda BLAST!

Announce and discuss the progress of your various programming-related projects...programs, games, websites, tutorials, libraries...anything!

Moderators: Pete, Mods

MikeHawk
Veteran
Posts: 61
Joined: Sun Jul 08, 2018 11:23 am

Panda BLAST!

Post by MikeHawk »

It was meant to be a small tech demo for Mode Y (unchained Mode 13) which provides 4 pages of video memory to work with. I haven't seen many QB programs use it, so here's one (and it is sourced too.) The game is inferior to Monkey Blast and has a handful of tiny glitches I probably won't fix out of sheer laziness. You can get the game at https://qbmikehawk.neocities.org/games/panda/index.html.

Meanwhile, feast your eyes on these terrific screenshots.
ImageImageImage
User avatar
Pete
Site Admin
Posts: 887
Joined: Sun Dec 07, 2003 9:10 pm
Location: Candor, NY
Contact:

Re: Panda BLAST!

Post by Pete »

Thanks for sharing this game and your website! Reminds me of the good old QBasic days. (Even if I happen to like pandas and am not so keen on shooting them.) :)
MikeHawk
Veteran
Posts: 61
Joined: Sun Jul 08, 2018 11:23 am

Re: Panda BLAST!

Post by MikeHawk »

And thank you for keeping your site online! I think I've been visiting this place since I was sixteen or seventeen and it's one of the last that is still alive. Everything else is gone.

Last year I sorted a bunch of files on an old drive and found a small pile of QBasic games. I played some of them and recalled some I didn't keep. And so I decided to crawl the internet to save everything I could. Right now, I've got 1043 games with screenshots and categorized via a small javascript database; that's about 280MB of files (plus 38 games that I cannot get to work and 30MB of random code, routines, libraries and utilities.) I'm still trying to figure out what to do with this collection (or where I could find more.) Too bad I can't upload archives on Neocities...
johnrude
Newbie
Posts: 1
Joined: Fri Jun 21, 2019 2:15 am

Re: Panda BLAST!

Post by johnrude »

Thanks for the sharing this website
Erik
Veteran
Posts: 72
Joined: Wed Jun 20, 2007 12:31 pm
Location: LI, NY
Contact:

Re: Panda BLAST!

Post by Erik »

Though I'm not a fan of blasting pandas. This is a really good QB game. The controls work exactly as you expect without having to think at all about them and the graphics are fantastic for QB.

Really well done! I enjoyed playing it and will most likely load it onto my 486 and play some more.

(The shotgun ended up killing me once I bought it. It just didn't fire fast enough even though it had the power behind it...)
MikeHawk
Veteran
Posts: 61
Joined: Sun Jul 08, 2018 11:23 am

Re: Panda BLAST!

Post by MikeHawk »

Thanks Erik!
Erik wrote: Fri Oct 04, 2019 4:32 am I enjoyed playing it and will most likely load it onto my 486 and play some more.
If you do, let me know how it goes: I'm aiming for low-end computers and all I have to test the code is DosBOX since I no longer have the legit hardware. I'll probably get back to it, mostly to iron out the bugs and use the PIT instead of the TIMER for time slices (I just released a "WIP demo" of a Breakout clone that uses the PIT chipset and it's overall much smoother: https://qbmikehawk.neocities.org/games/cody/ )
Erik
Veteran
Posts: 72
Joined: Wed Jun 20, 2007 12:31 pm
Location: LI, NY
Contact:

Re: Panda BLAST!

Post by Erik »

I haven't loaded it on my 486 yet but I'll copy it over with Cody McCloud sometime this week and let you know how it runs on it.

My 486 currently has an "Overdrive" chip so it's running at 50MHz and has 16MB of RAM if that helps give you a benchmark. I finally got it permanently set up at my desk with my IBM XT this past month both with CF hard drives so copying over should be much easier now.
Erik
Veteran
Posts: 72
Joined: Wed Jun 20, 2007 12:31 pm
Location: LI, NY
Contact:

Re: Panda BLAST!

Post by Erik »

Unfortunately, no luck on either on my 486.

Panda loads up to the title screen but once the mouse moves it gets hung up. I tried running from QB4.5 using panda.bas but it also hangs in the same spot. (Won't respond to CTRL+BREAK either)

With Cody, it doesn't look to ever make it into the application. The DOS prompt hangs after loading the application.

EDIT: I think it might have something to do with the sound settings. Minesweeper DUO works completely fine with the sound turned off. Once I try to set the sound blaster settings in the settings or click the auto detect the game freezes. I tried updating the config.ini for Cody to turn the sound off but didn't have any luck there.
MikeHawk
Veteran
Posts: 61
Joined: Sun Jul 08, 2018 11:23 am

Re: Panda BLAST!

Post by MikeHawk »

Thanks for the feedbacks!
Erik wrote: Wed Apr 29, 2020 1:56 pm Panda loads up to the title screen but once the mouse moves it gets hung up.
That's kind of good news: Panda still uses some ASM code and CALL ABSOLUTE to get the mouse input, while Minesweeper DUO uses CALL INTERRUPTX. I replaced that part of the code and I'm eager to see where it's gonna crash next.
Erik wrote: Wed Apr 29, 2020 1:56 pm With Cody, it doesn't look to ever make it into the application. The DOS prompt hangs after loading the application.
Cody shouldn't try to initialize the sound card when it is first launched, so that's weird; it may try to initialize the sound card even if "sound" is set to FALSE if it thinks a sound card might be available. However, if "lodma" is set to -1 or "baseport" is set to "0xFFFFFFFF", it shouldn't... Try setting "numpages" to 0 and see if that works.

I'll try to come up with a test code to initialize the sound card, see if that works. What kind of card do you have?
Last edited by MikeHawk on Thu Apr 30, 2020 9:36 am, edited 1 time in total.
MikeHawk
Veteran
Posts: 61
Joined: Sun Jul 08, 2018 11:23 am

Re: Panda BLAST!

Post by MikeHawk »

Good news! I managed to get most games to crash under a virtual machine (I really need to get my hands on a genuine DOS PC.) Panda crashes when hovering one of the menu options, so it might be related to sound effects (although it shouldn't attempt to play anything if it fails to find the Sound Blaster, so I'm a bit puzzled here, I'll dig into it.)
CODY seem to work fine though, except it fails to find the mouse somehow?? Not sure what's going on here.
MSDUO refuses to launch.
SSSLIDE works as intended, although at a crawling pace in the menu.

I attached a patch for Panda. I noticed some junk on top of the splash screen (red lines,) do you have that too?
Attachments
PATCH.RAR
Panda BLAST! patch, should fix computer freeze when hovering menu items.
(83.38 KiB) Downloaded 984 times
Erik
Veteran
Posts: 72
Joined: Wed Jun 20, 2007 12:31 pm
Location: LI, NY
Contact:

Re: Panda BLAST!

Post by Erik »

MikeHawk wrote: Wed Apr 29, 2020 5:07 pm Cody shouldn't try to initialize the sound card when it is first launched, so that's weird; it may try to initialize the sound card even if "sound" is set to FALSE if it thinks a sound card might be available. However, if "lodma" is set to -1 or "baseport" is set to "0xFFFFFFFF", it shouldn't... Try setting "numpages" to 0 and see if that works.
I tried again setting the pages to zero. Sound off and set the controller to "KEYBOARD" from "MOUSE" (not sure if that's right). Still didn't start unfortunately.
MikeHawk wrote: Wed Apr 29, 2020 5:07 pm What kind of card do you have?
Sound card is a Sound Blaster 16. Works on other things. Still no sound from MSDUO or PANDA though. :(
MikeHawk wrote: Thu Apr 30, 2020 9:14 am I attached a patch for Panda. I noticed some junk on top of the splash screen (red lines,) do you have that too?
The Panda patched version worked!! :D Awesome!

Yep, I do get the red lines when I start up as well. Only Panda though. I don't see them on MSDUO.
Here's what it looks like to me: https://i.imgur.com/nTJQU13.jpg

Interesting left overs I suppose in memory when I went from Doom and then loaded the game right after. You can see E1M1-ish in the background: https://i.imgur.com/QmmUjUV.jpg
MikeHawk
Veteran
Posts: 61
Joined: Sun Jul 08, 2018 11:23 am

Re: Panda BLAST!

Post by MikeHawk »

Glad it gets the game running at least. I really need to check how I initialized mode Y in Panda. Given the vertical tear in the 13rd "slice of Doom," it could be an issue with the display page offset... that game was my first attempt at mode Y so this may explain that. Right now I'm having sound issues with the virtual machine, so I can't really debug that section of the code either.

I'm also puzzled with the MSDUO/CODY issues... the one you can't run, I can, but not the other...
I really have to look into that.

EDIT: I'm a big dumb-dumb. I think I've found something... (oh boy, it's going to be a pain in the ass to fix given my setup)

I found an oddity in McCloud, fixed it, but I can't guarantee anything because that's the one I can run :( (this has to be one of those rare times where I complain because something's running as intended.)
Attachments
PATCH.RAR
Patch for Cody McCloud, may or not actually fix the crash on startup. I'm really not sure.
(102.46 KiB) Downloaded 947 times
User avatar
burger2227
Veteran
Posts: 2466
Joined: Mon Aug 21, 2006 12:40 am
Location: Pittsburgh, PA

Re: Panda BLAST!

Post by burger2227 »

High refresh rates are noticeable only in dynamic scenes; in slow or static scenes you rarely will see any difference beyond 30 FPS.
Frame rates below 30 FPS will flicker like old 8mm movies did.
Please acknowledge and thank members who answer your questions!
QB64 is a FREE QBasic compiler for WIN, MAC(OSX) and LINUX : https://www.qb64.org/forum/index.php
Get my Q-Basics demonstrator: https://www.dropbox.com/s/fdmgp91d6h8ps ... s.zip?dl=0
MikeHawk
Veteran
Posts: 61
Joined: Sun Jul 08, 2018 11:23 am

Re: Panda BLAST!

Post by MikeHawk »

Okay, I think I have some sound code that should work. It kind of works in VirtualBox (as well as it could given VB's faulty DMA transfer status port emulation and the lack of support for the SB16 command 0x41) but it works perfectly under DOSBox (but then my other junky code also worked under DOSBox.) At this point, I'm really wondering whether or not I should include a delay in all those polls to make sure it doesn't freeze the computer if something goes terribly wrong... I'll try and wrap this up in a library so I can fix the whole batch easily.
Erik
Veteran
Posts: 72
Joined: Wed Jun 20, 2007 12:31 pm
Location: LI, NY
Contact:

Re: Panda BLAST!

Post by Erik »

EDIT: Somehow made a double post....
Last edited by Erik on Sat May 02, 2020 3:25 am, edited 1 time in total.
Erik
Veteran
Posts: 72
Joined: Wed Jun 20, 2007 12:31 pm
Location: LI, NY
Contact:

Re: Panda BLAST!

Post by Erik »

The change in the McCloud patch definitely fixed something! I still don't have sound but I'm able to get to the menu and start a game without it crashing.

Once I get to the first level, after McCloud is moved (either by mouse or keyboard) a bit the game freezes. I can't even soft reset the computer, it needs a full power off and power on to restart.

It's very close to being playable. :D From what I can tell before it crashes, it looks to run completely fine on my 486-50Mhz 16MB of RAM. Panda now also runs completely fine on my set up (with no sound). I suppose I could pull my overdrive chip out of the expansion slot and see how it runs on a 25MHz 486SX but that thing is wedged in there pretty good right now.
MikeHawk
Veteran
Posts: 61
Joined: Sun Jul 08, 2018 11:23 am

Re: Panda BLAST!

Post by MikeHawk »

Erik wrote: Sat May 02, 2020 3:24 am I suppose I could pull my overdrive chip out of the expansion slot and see how it runs on a 25MHz 486SX but that thing is wedged in there pretty good right now.
Thanks for the help Erik! I'm fairly certain removing the overdrive chip won't be necessary... last patch fixed a stupid mistake where I was reading a string out of bounds; I should probably focus on the sound system, mode Y and the keyboard handler. Both Cody and MSDuo have an EMS component, but since MSDuo works on your system and I didn't modify it too much in Cody, I can probably rule that out...

EDIT: I think I may have a replacement for the sound code...

EDIT again: I just now realize that I'm supposed to create an ISR to acknowledge the end of DMA transfert... I guess I have to replace one of the existing interrupts according to the IRQ value provided by the BLASTER environment string? That would be interrupt 0x0A for IRQ 2, 0x0D for 5, 0x0F for 7 and 0x72 for 10 (http://www.bioscentral.com/misc/interrupts.htm). That would make sense, given that the factory default for the SoundBlaster 1.0 was IRQ 7 and it caused issues with printers (http://www.oldskool.org/guides/oldonnew/sound), since they used the same IRQ at interrupt 0x0F (http://www.ctyme.com/intr/int-0f.htm)... If I can do without, I'm probably not going to bother.
Erik
Veteran
Posts: 72
Joined: Wed Jun 20, 2007 12:31 pm
Location: LI, NY
Contact:

Re: Panda BLAST!

Post by Erik »

I ran wave test and had interesting results.

Not sure if it's needed, but this is what the header section had in it:
Segment: 9C11
Length: 16103
If I play the sounds slowly and let the previous sound finish completely before hitting space bar and triggering the next sound clip to be played, it doesn't crash. I sat there for a bit slowly tapping and it worked fine. If I press space too quickly while a previous sound is playing it will usually freeze the application after the two overlapping clips finish (Requiring a soft reset with CTRL+ALT+DEL).
MikeHawk
Veteran
Posts: 61
Joined: Sun Jul 08, 2018 11:23 am

Re: Panda BLAST!

Post by MikeHawk »

But at least there's sound, so it's getting somewhere... I should probably stop the DMA transfer manually, or maybe attempt auto-init DMA transfer, which would also provide sample mixing... I'm just not sure how to do it yet... I'll look into it, thanks again for your help!
User avatar
burger2227
Veteran
Posts: 2466
Joined: Mon Aug 21, 2006 12:40 am
Location: Pittsburgh, PA

Re: Panda BLAST!

Post by burger2227 »

Check DMA on the hard drives in Device Manager. I had problems there.
PIO may be listed and unchangeable...newer stuff does not have the problem.

Can click uninstall and reboot to get it reset as I recall.

http://petesqbsite.com/phpBB3/viewtopic ... pio#p22888

In the context of PC hard drives, what are PIO and DMA modes?
Please acknowledge and thank members who answer your questions!
QB64 is a FREE QBasic compiler for WIN, MAC(OSX) and LINUX : https://www.qb64.org/forum/index.php
Get my Q-Basics demonstrator: https://www.dropbox.com/s/fdmgp91d6h8ps ... s.zip?dl=0
Post Reply