dMZX Forums: Chip's Challenge Level Viewer - dMZX Forums

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Chip's Challenge Level Viewer It's amazing what sometimes happens when you mix nostalgia and bor

#1 User is offline   Kewlio 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 19
  • Joined: 27-July 02
  • Gender:Male
  • Location:This Island Earth

Posted 01 November 2011 - 02:15 AM

Because I was freaking bored, I decided to make a level loader/viewer for the game Chip's Challenge. It doesn't generate the best-looking maps ever, but it loads them right. Get it here or here:
Attached File  chipsmzx.7z (276.08K)
Number of downloads: 86

One caveat is that it takes a long time to load level data, even at speed 1. The official level set takes about four and a half minutes. I made it slightly more interesting (and make it look like it's actually doing something) by displaying the first eight characters of each level as it loads. Once it's all loaded, it takes only 2-3 seconds to load each level into the viewer.

The viewer itself allows for selecting levels either by number or also by level password. A legend is included in case you have no idea what it is you're looking at.

A save file with the user-generated Chip's Challenge Level Pack 2 (as well as the level pack itself) is included. To avoid copyright trash, the original level set is not included.

So, now that such a thing exists, would there be any interest at all if this was made into a fully functional (at least, as fully as MZX would allow) Chip's Challenge emulator?

This post has been edited by Kewlio: 01 November 2011 - 02:37 AM

0

#2 User is offline   asgromo 

  • steiner, porsches
  • PipPipPipPipPipPip
  • Group: Members
  • Posts: 3,841
  • Joined: 04-May 02
  • Gender:Female
  • Location:New York State

Posted 01 November 2011 - 02:21 AM

There would be my interest. I would enjoy that. Isn't that hard? Isn't Chip's Challenge rules/timing actually, like, ZZT-level idiosyncratic?
0

#3 User is offline   Kewlio 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 19
  • Joined: 27-July 02
  • Gender:Male
  • Location:This Island Earth

Posted 01 November 2011 - 04:05 AM

I figure it would be no easy feat to actually get it done. But hell if I'm not crazy enough to actually try. XD Fortunately, the Chip's Challenge wiki seems to give information on pretty much all of the intricate mechanics involved in the game. I know that most things move at a rate of five moves per second (so 200ms/move), with a couple of exceptions. I've played enough to know what does what and why it wouldn't do what in whatever case. The main problem I can see is in collision (where pretty much every sprite has to move all at the same time, and two monsters cannot occupy the same space).

I might make some test levels and play around with this...
0

#4 User is offline   Maxim 

  • Dismember
  • PipPipPipPipPip
  • Group: Members
  • Posts: 1,080
  • Joined: 09-October 00
  • Gender:Male
  • Location:Kyrgyzstan

Posted 01 November 2011 - 09:44 AM

Put this in the first robot in the loader:

set "commands" "(-1>>1)"
0

#5 User is offline   Kewlio 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 19
  • Joined: 27-July 02
  • Gender:Male
  • Location:This Island Earth

Posted 02 November 2011 - 01:36 AM

View PostMaxim, on 01 November 2011 - 06:44 AM, said:

Put this in the first robot in the loader:

set "commands" "(-1>>1)"


That just seems to make MZX seize up more than anything...
0

#6 User is offline   Dr Lancer-X 

  • 電波、届いた?
  • Group: DigiStaff
  • Posts: 8,936
  • Joined: 20-March 02
  • Location:ur mom nmiaow

Posted 02 November 2011 - 02:19 AM

In that case you've got a busy loop (that is, a loop that continues infinitely without a wait 1 in it). Setting commands insanely high from the beginning is useful because it makes those extremely obvious so you can fix them.
Posted Image
<Malwyn> Yes, yes. Don't worry I'd rather masturbate with broken glass than ask you for help again. :(
0

#7 User is offline   Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,895
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 02 November 2011 - 06:07 AM

But use something that's not stupidly high, something more reasonable like [set "commands" "(10^7)"] so MegaZeux doesn't lock up entirely. Total lockups are more counter-productive than it just slowing to a crawl, and all you really need is an obvious indication that something's wrong. Increase magnitude if needed
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
0

#8 User is offline   Kewlio 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 19
  • Joined: 27-July 02
  • Gender:Male
  • Location:This Island Earth

Posted 03 November 2011 - 09:58 AM

I still seem to get some freezing... Not as bad, but the file loads a lot faster. The viewer still seems to work better at the default 40 com/s, however. What's the best way to determine the best time and place to toss in a wait 1?
0

#9 User is offline   Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,895
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 03 November 2011 - 03:58 PM

Well, you probably have a loop that looks something like:

: "loop"
. "stuff"
...
goto "loop"


Unchecked, this will run until the number of lines have been executed equal to what you set "commands" to. This is clearly a lot of commands, so we put a "cycle 1" right before goto "loop" so it will end the cycle after the code's been executed once.

edit 2: Perhaps I should clarify. Since the cycle command is very rarely used for its intended purpose anymore, and since wait 1 has unwanted side effects when a robot sends another robot to a subroutine, it's sorta started becoming standard practice to put "cycle 1" where a lot of people originally would have put "wait 1". I say sorta because of birds like Lancer-X who keep saying "wait 1"

: "loop"
. "stuff"
...
cycle 1
goto "loop"


edit: Ah, here it is, I think. From the robot Selector at 35,00, there are two bits that need the cycle ended:

: "inputloop"
if leftpressed then "prevlevel"
if rightpressed then "nextlevel"
goto "inputloop"


Change it to:

: "inputloop"
if leftpressed then "prevlevel"
if rightpressed then "nextlevel"
cycle 1
goto "inputloop"


From the same robot:

: "finalloop"
if "selectwait" = 1 then "finalloop"


Change it to:

: "finalloop"
cycle 1
if "selectwait" = 1 then "finalloop"


In the loader board, the timer robot needs one too:

: "startloop"
if "local1" = "TIME_SECONDS" then "startloop"


Change it to:

: "startloop"
cycle 1
if "local1" = "TIME_SECONDS" then "startloop"


Now, I couldn't really say why, but about half-way through loading the levels something starts wasting a lot of processor cycles (or the levels get really big). I haven't been able to figure out what's causing this :( The viewer should run smoothly now, though.

This post has been edited by Lachesis: 03 November 2011 - 04:30 PM

"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
0

#10 User is offline   Old-Sckool 

  • megazeux breaker
  • PipPipPipPip
  • Group: Members
  • Posts: 649
  • Joined: 07-June 05
  • Gender:Male

Posted 03 November 2011 - 05:19 PM

I've discovered some time ago that with my pokemon red/blue trainer pokemon/wild pokemon viewer, there becomes a point where initializing new variables dynamically suddenly becomes incredibly costly. Perhaps that's it?
<Nadir> mzxers don't make GAMES, usually
<phthalocyanine> they make experiences.
<Nadir> demos, more like
<Nadir> a glimpse into what could have been if mzx wasn't such a bore to work with
<Nadir> actually, i'm being unfair
<Nadir> i would have made mzx games if it was capable of running on more than 20 computers worldwide in 1998
<Nadir> >:D

<%Alice> functor
<%nooodl> i hear C++ has a thing called functors and they're completely different from Haskell functors...
<rorirover> the result is the most horrid thing in C++, it's basically black magic and it transforms any code you're writing into some eldritch monstrosity
0

#11 User is offline   Spectere 

  • Resident Spectere Fanboy
  • PipPipPipPipPipPip
  • Group: Members
  • Posts: 3,111
  • Joined: 18-June 04
  • Gender:Male
  • Location:Struthers, OH, USA

Posted 04 November 2011 - 12:36 AM

View PostLachesis, on 03 November 2011 - 11:58 AM, said:

...and since wait 1 has unwanted side effects when a robot sends another robot to a subroutine...


Sorry to bump this slightly off topic, but I'm curious: what kind of issues does that cause?

I'm out of the loop. -_-
:)
0

#12 User is offline   Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,895
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 04 November 2011 - 01:55 AM

When the robot returns from the subroutine, it executes the wait 1 again.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
2

#13 User is offline   Spectere 

  • Resident Spectere Fanboy
  • PipPipPipPipPipPip
  • Group: Members
  • Posts: 3,111
  • Joined: 18-June 04
  • Gender:Male
  • Location:Struthers, OH, USA

Posted 04 November 2011 - 02:19 AM

Ah, good to know. Thanks.
:)
0

#14 User is offline   Kewlio 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 19
  • Joined: 27-July 02
  • Gender:Male
  • Location:This Island Earth

Posted 10 November 2011 - 09:41 AM

Sorry for the late reply. I kind of have several projects going on right now. Combined with lack of energy to work on any of them consistently. Not exactly an ideal mix.

Anyhow, thanks for that, Lachesis. I'll be implementing that when I get back into this thing.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users