QB64.org Forum

Active Forums => Programs => Topic started by: mynameispaul on October 28, 2020, 01:21:36 pm

Title: looking for old bas program called MONOSPAC
Post by: mynameispaul on October 28, 2020, 01:21:36 pm
does anyone have a working version of an old bas program called MONOSPAC.
i recently re-downloaded that program but so far am unable to get it to run in QB64
(i hope its ok that i put this "request" post in this particular forum)
Title: Re: looking for old bas program called MONOSPAC
Post by: bplus on October 28, 2020, 01:34:11 pm
Was it a game or utility, maybe we can recreate it?

You have the bas source?
Title: Re: looking for old bas program called MONOSPAC
Post by: mynameispaul on October 28, 2020, 01:40:55 pm
it was a fun black and white space shooter game.
and yes i do have the source code.
its easy to find on various websites.
Title: Re: looking for old bas program called MONOSPAC
Post by: bplus on October 28, 2020, 02:52:50 pm
Sure ice cream vendor music while shooting bullets non stop, what charm :-))



Is the source code loaded with GOTO's? and line numbers?
Title: Re: looking for old bas program called MONOSPAC
Post by: mynameispaul on October 28, 2020, 03:18:18 pm
see attached
Title: Re: looking for old bas program called MONOSPAC
Post by: bplus on October 28, 2020, 03:45:54 pm
Thanks you have me curious. A very quick scan I see 3000+ lines very well organized in SUBS... Good!

But this sort of thing is trouble (for me anyway):
Code: QB64: [Select]
  1. SUB drawgraphics
  2.     IF totalsprites% = 0 THEN EXIT SUB
  3.     vsync
  4.     s& = VARSEG(doublebuffer%(0))
  5.     o1& = VARPTR(doublebuffer%(0))
  6.     DEF SEG = VARSEG(engine%(0))
  7.     CALL ABSOLUTE(s&, o1&, 0)
  8.     t% = totalsprites%: IF t% > 0 THEN CALL ABSOLUTE(s&, o1&, VARSEG(sprite(0).x), VARPTR(sprite(0).x), VARSEG(imx%(0)), VARPTR(imx%(0)), t%, 4)
  9.     DEF SEG
  10.     drawboxesintobuf
  11.     DEF SEG = VARSEG(blitbuf2%(0))
  12.     y% = (fadeout% \ 4)
  13.     y2% = 200 - (fadeout% \ 4)
  14.     CALL ABSOLUTE(0, 0, y%, y2%, s&, o1&, 0)
  15.     DEF SEG
  16.     clearsprites
  17.  

Translating this to QB64 is out of my scope of experience.

Title: Re: looking for old bas program called MONOSPAC
Post by: johnno56 on October 29, 2020, 09:30:53 pm
Cool game.

Poor thing seemed to struggle a bit with lots of sprites... QuickBasic - about 30 years old? Let's not talk about the ancient machines of the day... I'm surprised that Monospace ran as well as it did... Still a cool game.

You're not thinking about what I think you are thinking about, are you? lol
Title: Re: looking for old bas program called MONOSPAC
Post by: bplus on October 29, 2020, 09:35:14 pm
Cool game.

Poor thing seemed to struggle a bit with lots of sprites... QuickBasic - about 30 years old? Let's not talk about the ancient machines of the day... I'm surprised that Monospace ran as well as it did... Still a cool game.

You're not thinking about what I think you are thinking about, are you? lol

I am thinking paul can just write this in QB64 from scratch, be a hell of a project.

What are you thinking?
Title: Re: looking for old bas program called MONOSPAC
Post by: _vince on October 29, 2020, 09:38:13 pm
I remember this game from somewhere, I think it was allegedly the best game on the original qbasic.com, reviewed here as well: http://www.petesqbsite.com/reviews/action/mono.html (http://www.petesqbsite.com/reviews/action/mono.html)
Title: Re: looking for old bas program called MONOSPAC
Post by: Cobalt on October 29, 2020, 09:57:02 pm
Translating this to QB64 is out of my scope of experience.

Wonder if they are handling the sprites like that to avoid flicker?

Looks like SCREEN 2. I'm guessing it ran faster on a true dos machine if it was using CALL ABS.
Probably wouldn't be too difficult to re-code(or at least clone anyway) though some of the FX might be fun to copy but its a pretty straight forward side scroll shoot'em-up.

Nevermind, SCREEN 7, wonder why they only used 2 colors then?
Title: Re: looking for old bas program called MONOSPAC
Post by: Cobalt on November 01, 2020, 02:38:19 pm
Turns out to be an interesting game, all the graphics are indeed handled via ASM calls. As well as the keyboard controls another ASM call.
Sound as well, about 80% of this thing is ASM handled!

So converting this code straight to QB64 would be an absurd task. Would definitely be easier to just clone the game. Though I still haven't quite figured how most of the graphics are stored, the explosion gfx is stored in the IMX file, its a 1bpp graphic(screen 2 as I suspected, though how exactly its loaded in screen 7 not sure ASM trickery?) but I haven't been able to find the other objects. but they should all be in the IMX file.