Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.
Joined: 28/07/2019 Location: United StatesPosts: 288
Posted: 06:09am 01 Aug 2019
Copy link to clipboard
Print this post
Hi Mauro,
It's me, MrWaalkman from your Youtube video.
First off, let me say that this is an impressive amount of work, and it really looks great! I've been having fun playing with it, as well as looking through your code. Thanks!
Here's a bit of feedback:
A couple of MMBasic issues (out of your control):
"Const" doesn't work on the CMM. MMBasic for Dos it does.
"Keydown" odd behavior.
Try this: Try moving while shooting. Once you take a shot, you have to release the arrow key and hit it again to begin moving again. Keydown doesn't "see" that the key is down until you release and press it again.
This may be a limitation of the PS/2 keyboard.
Things that I noticed while playing Gauntlet:
Allowing your player to die will actually start increasing its health as he/she continues to get hit. A heart will replace the leading "0". Eventually when the player's health reaches 10000, the least significant digit will be lost and the number is right-shifted by one place making it appear that you are back to 1000.
Immortality was never so easy! :)
Letting your player get "swarmed" isn't all that much worse than getting hit by a single stream of monsters (go to level three and put yourself in the center of "Ghostville" and you will see what I mean). It appears that the hits come in quicker than the program can tally them.
Potions don't work, nor can they be destroyed. Same with the food.
Artifacts are left over in some instances.
Opening a gate does not decrement the key count below one key (the game shows that you still have a key when you don't).
I'll start looking into these issues myself as practice with the CMM. :)
MauroXavier Guru
Joined: 06/03/2016 Location: BrazilPosts: 303
Posted: 11:43am 01 Aug 2019
Copy link to clipboard
Print this post
Firstly, thanks for your support and comments!
This little port currently it's only a test demo, and I doesn't implemented so many things and other things are MMBasic limitations, let's see:
- The Keydown only get the current key pressed on a instance, and when you press two keys simultaneosly, it doesn't read back to the one key alone pressed previously, you must press it again. I got so used to this limitation that I don't realize it anymore kkk...
- The player's health doesn't affect directly the game and for a while it's merely cosmetic. The player cannot die and the health doesn't have upper or lower limits.
- The health internally is affected on each enemy's attack individually, but on screen are updated every second (not in real time to save CPU), this can cause a false impression about the "swarmed" player effect. In anycase, I will test this in the "Ghostville" (I liked that name!).
- Potions does not implemented yet
- Foods and potions can't be destroyed yet
- Artifacts really are a prage because the game can't use a framebuffer and I cannot use sprites to store the screen because the screen scroll affect the restore position as well the sprites consumes more memory. All things in screen are shapes using sprites commands, and some movements can be not cleared in the correct order, what cause this anomalies. I'm trying hard to fix this.
- The keys count are turned off to test the stages.
I intent to release a newer version soon, and will be awesome if you test it and tell me your impressions again.
Thanks again!
MauroXavier Guru
Joined: 06/03/2016 Location: BrazilPosts: 303
Posted: 11:43am 01 Aug 2019
Copy link to clipboard
Print this post
Firstly, thanks for your support and comments!
This little port currently it's only a test demo, and I doesn't implemented so many things and other things are MMBasic limitations, let's see:
- The Keydown only get the current key pressed on a instance, and when you press two keys simultaneosly, it doesn't read back to the one key alone pressed previously, you must press it again. I got so used to this limitation that I don't realize it anymore kkk...
- The player's health doesn't affect directly the game and for a while it's merely cosmetic. The player cannot die and the health doesn't have upper or lower limits.
- The health internally is affected on each enemy's attack individually, but on screen are updated every second (not in real time to save CPU), this can cause a false impression about the "swarmed" player effect. In anycase, I will test this in the "Ghostville" (I liked that name!).
- Potions does not implemented yet
- Foods and potions can't be destroyed yet
- Artifacts really are a prage because the game can't use a framebuffer and I cannot use sprites to store the screen because the screen scroll affect the restore position as well the sprites consumes more memory. All things in screen are shapes using sprites commands, and some movements can be not cleared in the correct order, what cause this anomalies. I'm trying hard to fix this.
- The keys count are turned off to test the stages.
I intent to release a newer version soon, and will be awesome if you test it and tell me your impressions again.
Thanks again!
MauroXavier Guru
Joined: 06/03/2016 Location: BrazilPosts: 303
Posted: 12:23am 02 Aug 2019
Copy link to clipboard
Print this post
SimpleSafeName, try to change some variables in the start of source:
SAVEKE=2 SAVEPO=2 GETTRE=2
Change all this to zero to have some (bad) voices like "Use keys to open doors".
Change the "pwmmus=0" to "pwmmus=1" but DON'T USE HEADPHONES AND LOWER THE VOLUME IF YOU ARE USING SPEAKERS because this is a test and can hurt your ears.
This last setting will enable VGM music to be played using mono squared waves to play music in the title and in the character selection screen.
SimpleSafeName
Senior Member
Joined: 28/07/2019 Location: United StatesPosts: 288
Posted: 05:52am 02 Aug 2019
Copy link to clipboard
Print this post
Okay, cool!
But it will have to wait until my SN76489AN chips get (they're close, they're in Atlanta, GA). My Oscillators came in today, and I should have more than enough odd parts lying around to complete the circuit.
MauroXavier Guru
Joined: 06/03/2016 Location: BrazilPosts: 303
Posted: 10:38am 02 Aug 2019
Copy link to clipboard
Print this post
This test don't need a SN76489, it's only using the native sound output from CMM. Do you tried it?
SimpleSafeName
Senior Member
Joined: 28/07/2019 Location: United StatesPosts: 288
Posted: 04:09pm 02 Aug 2019
Copy link to clipboard
Print this post
Ah, I didn't know that. On the CGCOLORMAX2 it has a spot for me to solder in a header, I'll do that and give it a try.
SimpleSafeName
Senior Member
Joined: 28/07/2019 Location: United StatesPosts: 288
Posted: 09:59pm 02 Aug 2019
Copy link to clipboard
Print this post
Much better with sound. Thanks! :)
On level six there is a spot where there seems to be an invisible wall. It's between me and the monsters. Was that intentional?
And What's this box in the other pic?
SimpleSafeName
Senior Member
Joined: 28/07/2019 Location: United StatesPosts: 288
Posted: 11:45pm 02 Aug 2019
Copy link to clipboard
Print this post
So here's a head scratcher, In Gauntlet.bas you load:
Sprite Load ".springame2.spr": FirstLoad=0
with no trouble. But if you were to open it in Mstudio.bas you get:
"Error: Corrupt sprite file"
The error is coming from "ColourMM_MMBasic_V4.5C.hex", not Mstudio.bas.
The line that works in Gauntlet is:
"Sprite Load ".springame2.spr": FirstLoad=0"
The line in Mstudio.bas that fails is:
"Sprite Load file$(sel)"
Loading ingame.spr works just fine in Mstudio.
SimpleSafeName
Senior Member
Joined: 28/07/2019 Location: United StatesPosts: 288
Posted: 02:51am 03 Aug 2019
Copy link to clipboard
Print this post
Well, that was a rabbit hole that I fell into.
So the problem with "ingame1.spr" (and I imagine ingame2.spr) is that they don't contain 106 sprites. ingame1.spr will load once you change the line "16,106" to "16,102".
But that leaves most of one sprite left. According to Notepad++ there are 1652 lines in the file, which *should* load up 103 sprites.
But in MMBasic's Edit, it shows only 1649 lines. Where did the three lines go? Adding three lines and changing the sprite count allows Mstudio to load the file.
There are a bunch of blank lines at the beginning of the file, I used Notepad++ to remove these lines by using a "regular expression" search of "^
" and a blank replacement line.
This brought the sprite count down to 87, and cleaned the sprites up to where they displayed properly (while the file would load with the sprite count changed to 102 or 103, many of the first sprites had a blank line between each "real" line).
I'm going to reload ingame1.spr in edit and copy what it loads and paste it into another file and compare that to what I have in Notepad++. Should be interesting... :)
Other issues with edit is that it allows you to "scroll past" the end of the file. But that's a different kettle of fish.
SimpleSafeName
Senior Member
Joined: 28/07/2019 Location: United StatesPosts: 288
Posted: 02:54am 03 Aug 2019
Copy link to clipboard
Print this post
Ah, never mind. Edit won't let me copy more than 255 characters.
MauroXavier Guru
Joined: 06/03/2016 Location: BrazilPosts: 303
Posted: 11:03am 05 Aug 2019
Copy link to clipboard
Print this post
I don't have any problems in the ingame2.spr and other sprites editing in MXStudio. In this case, some sprite files are made inside the code merging the sprites from the choosed player, fixed enemies, blocks and level tiles. In anycase, I will see if in the current source have this bug, maybe I have fixed it and not saw it before.
On the level six the invisible wall will be a block that would turn in to a exit if you shoot in the wall.
The closed box in other pic it's a chest that will open with a key.
All the maps it's based on the Gauntlet NES maps.
Thanks a lot for your tests and considerations. I pretend to publish another update source soon and I hope you enjoy again!
SimpleSafeName
Senior Member
Joined: 28/07/2019 Location: United StatesPosts: 288
Posted: 02:13am 07 Aug 2019
Copy link to clipboard
Print this post
That's the weird thing, I don't either. In the game, they load up properly and look good. I need to look at my paths again.
One request for Mstudio would be that you add a comment line after each sprite to show where the sprites begin and end.
I tried to load a map in Mstudio and it doesn't seem to work. But the header says that it was created using Mstudio.
I tried shooting that block and it doesn't do anything. No big deal.
And I tried opening the chest using a key, but no go either.
And no problem, I'm learning quite a bit as I go through the program. :)
And what are the two numbers in the lower right hand part of the screen for?
MauroXavier Guru
Joined: 06/03/2016 Location: BrazilPosts: 303
Posted: 11:39am 07 Aug 2019
Copy link to clipboard
Print this post
Ok, I will add commented lines to the sprites with the number and a comment for each, it's a good idea!
To load a map you must have a file in the same folder with the .SPR extension with the same name of the map, ex.: ROOM01.MAP and ROOM01.SPR
The treasure chest and the block that turns into an exit are not yet implemented.
The numbers on the lower right are the count of the processed enemies on the screen and FPS.
SimpleSafeName
Senior Member
Joined: 28/07/2019 Location: United StatesPosts: 288
Posted: 05:13am 08 Aug 2019
Copy link to clipboard
Print this post
Thanks! That will make it easier to follow. :)
Ah, so that's why ROOM07.MAP loaded when the rest wouldn't.
So I took a look at the .spr file and it looks like it had the same thing happen as the previous .spr file. Spaced lines, and the same 16, 106 line. But in this one's case, once I removed the extra blank lines the total number of lines matched what the 16, 106 would work out to be (1696 + 2 lines for the comment and the number of sprites). Prior to that it was 1955 lines long.
So that leads to the next problem (this is a MMBasic problem, not yours). I tried to load up ROOM07.MAP and it came back with this error:
You can see where it reports the problem being at line 1613 of Mstudio.bas. But look closer, it has merged the first part of line 1613 (TilSel=1: ) with part of line 1638 (5,MM.VRes-9) Str$(Til)+"/"+Str$(MaxSpr)+" ")
You can see that the compiler is mixing these two lines together. Strange...
Okay, I'll wait on the hidden exit and the chest. :)
And now I know what those numbers are for. Thanks! :)
MauroXavier Guru
Joined: 06/03/2016 Location: BrazilPosts: 303
Posted: 05:23pm 08 Aug 2019
Copy link to clipboard
Print this post
In the Mstudio I used many tricks to conserve memory because I had too many errors and lockups. I not doubt that you found one more bug.
In the case of the ingame2.spr that you said before, I tested and it have the same bug here and I believe that is a sprite merge bad routine in Gauntlet source. I will fix it soon.
SimpleSafeName
Senior Member
Joined: 28/07/2019 Location: United StatesPosts: 288
Posted: 02:15am 09 Aug 2019
Copy link to clipboard
Print this post
No, I don't think that it's you. Unless you've figured out how to make self-modifying code. :)
The program appears to skip several lines before merging two lines together. Neat trick. I think that this one is for Geoff.
I edited the sprite file to see if that was contributing to the problem, but I got the exact same error both times.
Is there a place to deposit MMBasic bug droppings (bug reports)?
Turbo46
Guru
Joined: 24/12/2017 Location: AustraliaPosts: 1595
Posted: 05:43am 09 Aug 2019
Copy link to clipboard
Print this post
I think the best way to notify Geoff on any bugs is to PM him directly. He may not read every post.
BillKeep safe. Live long and prosper.
SimpleSafeName
Senior Member
Joined: 28/07/2019 Location: United StatesPosts: 288
Posted: 11:53am 09 Aug 2019
Copy link to clipboard
Print this post
I think the best way to notify Geoff on any bugs is to PM him directly. He may not read every post.
Bill
Okay, thanks! :)
MauroXavier Guru
Joined: 06/03/2016 Location: BrazilPosts: 303
Posted: 11:42am 15 Aug 2019
Copy link to clipboard
Print this post
Seen the Manic Miner ceptimus port, now thinking better, I percepted that in development of my Gauntlet port, if I targeted the ZX Spectrum or MSX version, I could used fonts in place of sprites and get more memory, more speed and more animations (but with inferior graphics)... Maybe I pushed too much the CMM and I didn't care about the gameplay.
@SimpleSafeName, do you really enjoyed playing Gauntlet on CMM or you agree to simplify somethings to make it faster and more responsive?
It's time to back and see what I can do to make my Gauntlet a more enjoyable port (with two players).
This weekend I must release another version with a Youtube video... Edited 2019-08-15 21:43 by MauroXavier