Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 21:47 09 May 2024 Privacy Policy
Jump to

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.

Forum Index : Microcontroller and PC projects : CMM2: V5.05.05 beta

     Page 4 of 7    
Author Message
Sasquatch

Senior Member

Joined: 08/05/2020
Location: United States
Posts: 296
Posted: 10:19pm 18 Aug 2020
Copy link to clipboard 
Print this post

  matherp said  
  Quote  I am noticing some issues with 5.05.05b11


Oops - sorry: I was playing with an idea that didn't work and didn't back it out properly. Please download again - should be OK now



Yep, that seems to have the sprite issue fixed.

Thanks again for all your hard work on this project!!!  
-Carl
 
MauroXavier
Guru

Joined: 06/03/2016
Location: Brazil
Posts: 303
Posted: 10:42pm 18 Aug 2020
Copy link to clipboard 
Print this post

  Sasquatch said  It's actually fun to play fast, and the slowdown when the screen is filled with "bad guys" isn't nearly as noticeable.  The music also speeds up???  I guess needing to regulate the speed is a nice "problem" to have  

The speed would not be a problem because all routines are timed to cap the framerate and the sound are fixed to 10ms using a native interrupt. I will see now what´s going on...
 
MauroXavier
Guru

Joined: 06/03/2016
Location: Brazil
Posts: 303
Posted: 11:14pm 18 Aug 2020
Copy link to clipboard 
Print this post

Well, I have tested here. I have the Y version of the CPU that is running at 400Mhz, I don´t saw any difference in the speed of Gauntlet in this firmware.
 
Sasquatch

Senior Member

Joined: 08/05/2020
Location: United States
Posts: 296
Posted: 12:08am 19 Aug 2020
Copy link to clipboard 
Print this post

  MauroXavier said  Well, I have tested here. I have the Y version of the CPU that is running at 400Mhz, I don´t saw any difference in the speed of Gauntlet in this firmware.



So it looks like I have only played Gauntlet with Option RAM enabled.  When I upgraded, Option RAM was off.  With option RAM enabled, the game slows down much more with additional monsters on screen.  So I guess I was always playing it slower than normal and now I have "normal" speed without Option RAM?  This may be why it seemed so much faster after the firmware upgrade.

With Option RAM off, I get ~20FPS maximum and ~10FPS with 40 monsters on screen.  At least that's what the numbers in the lower right of the screen seem to be telling me.  At 10FPS the game is noticeably slower but still seems smooth and responsive.  I'll do some more testing to see what I get with Option RAM back on.
Edited 2020-08-19 10:13 by Sasquatch
-Carl
 
MauroXavier
Guru

Joined: 06/03/2016
Location: Brazil
Posts: 303
Posted: 12:39am 19 Aug 2020
Copy link to clipboard 
Print this post

Humm... I´m not using OPTION RAM for a while, I will test it too.

This week I intend to launch a new video on YouTube and update the source to support 2 players. In my tests, the speed was almost the same as one player (what consumes more CPU is the enemies and 8-bit music style).

Thanks for your tests!
 
Sasquatch

Senior Member

Joined: 08/05/2020
Location: United States
Posts: 296
Posted: 12:58am 19 Aug 2020
Copy link to clipboard 
Print this post

Yes!  When the game slows below 10FPS it has more noticeable lag and becomes much less smooth moving and scrolling.  With Option RAM enabled I am seeing frame rates as low as 5-6 when the screen is full of monsters.  The Troll looking monsters seem even worse than the Ghosts.
-Carl
 
mkopack73
Senior Member

Joined: 03/07/2020
Location: United States
Posts: 261
Posted: 03:52pm 19 Aug 2020
Copy link to clipboard 
Print this post

matherp,

Is there any way we can get maybe 2 additional digits of precision in the firmware version number to indicate the beta/release build revision?

ie: you post up build 5.05.05b10, but MM.INFO will report that back as 5.0505 currently... Could we get it to report that in some way to indicate the beta number as well? (I was initially thinking 5.050510 but that won't work because it'll have a rev > than the 5.0505 that the actual release will get... :( ) I guess this is why MS and others use whole number build versions and even the betas get a full number and then final release gets a higher number...

I'm just looking for a way to allow us to be able to catch when we need the firmware to be above a specific beta build number (like we used something that you fixed in 5.05.05b6 for example)....

Otherwise I guess we really can only use that check for actual firmware release version checks...
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8600
Posted: 05:46pm 19 Aug 2020
Copy link to clipboard 
Print this post

  Quote  Is there any way we can get maybe 2 additional digits of precision in the firmware version number to indicate the beta/release build revision?


I think (hope) this is a temporary issue. I expect to release 5.05.05 in the next couple of weeks unless many more bugs arise. In any case 5.05.05 will essentially just be a bug fix release and the code should then be pretty stable. Certainly I'm not intending to make any further functional changes in the near future
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8600
Posted: 07:19am 20 Aug 2020
Copy link to clipboard 
Print this post

5.05.05b12 posted

http://geoffg.net/Downloads/Maximite/CMM2_Beta.zip

Thanks to Geoff for providing a final fix to the DATA issue. The code now correctly interprets unquoted strings in both upper and lower case and also allows expressions in both upper and lower case. This means all existing programs using expressions in DATA statements should now work again.

New MODE 7 320x240. This give a full screen display with square pixels on a normal aspect ratio monitor. Pages 0-13 are available in this mode with pages 0 and 1 in fast processor memory

Experimental new OPTION for comment.

OPTION DEFAULT MODE n

n can be 800 (default) or 640

This sets the resolution in mode 1 to be either 800x600 or 640x480. This should allow the CMM2 to use the cheap 7" TFT screens like this.

This is a permanently saved option but does not cause a reboot so can be used in a program. However, developers should probably not use it in code to be circulated as you will reconfigure a user's CMM2
 
vegipete

Guru

Joined: 29/01/2013
Location: Canada
Posts: 1084
Posted: 07:44am 20 Aug 2020
Copy link to clipboard 
Print this post

It seems dangerous to me if mode 1 can have different resolutions. It might be safer to have, say, a mode 8 that is 640x480 and allow the default mode to be 1 or 8

==================
The data saga.

If I want a string that is the same as a keyword, variable or expression, I must put in quotes.

If I want a comma to be part of a string, the string must be in quotes.

What happens if an unquoted string in a data statement is later used as a variable name?
CONST col_dark = &h101010

data col_dark, col_light, red

col_light = &hA0A0A0
What will the data values be? 1, 2 or 3 numbers? (Does "red" only have a particular value when used in the rgb() statement?
Visit Vegipete's *Mite Library for cool programs.
 
realmnm

Newbie

Joined: 07/07/2020
Location: Australia
Posts: 34
Posted: 07:50am 20 Aug 2020
Copy link to clipboard 
Print this post

Awesome!

If in my program I set mode 1 and the user has set it to 640, I will be in a 640x 480 screen, correct?

Martin
This signature intentionally left blank.
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8600
Posted: 09:07am 20 Aug 2020
Copy link to clipboard 
Print this post

  Quote  If in my program I set mode 1 and the user has set it to 640, I will be in a 640x 480 screen, correct?

Correct and you can tell by reading MM.HRES
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8600
Posted: 10:57am 20 Aug 2020
Copy link to clipboard 
Print this post

  Quote  It might be safer to have, say, a mode 8 that is 640x480 and allow the default mode to be 1 or 8


Thinking about it more, this is a better idea. It is a bigger job but I'll make the change and re-post
 
MauroXavier
Guru

Joined: 06/03/2016
Location: Brazil
Posts: 303
Posted: 11:25am 20 Aug 2020
Copy link to clipboard 
Print this post

  matherp said  New MODE 7 320x240. This give a full screen display with square pixels on a normal aspect ratio monitor. Pages 0-13 are available in this mode with pages 0 and 1 in fast processor memory

Final Fight and Gauntlet will appreciate this new resolution.

Thanks!
 
capsikin
Guru

Joined: 30/06/2020
Location: Australia
Posts: 341
Posted: 12:08pm 20 Aug 2020
Copy link to clipboard 
Print this post

  matherp said  
  Quote  It might be safer to have, say, a mode 8 that is 640x480 and allow the default mode to be 1 or 8


Thinking about it more, this is a better idea. It is a bigger job but I'll make the change and re-post


Another option would be a mode 8 that's 640x480, and a mode 0 (or other new number) that's either 640x480 or 800x600 (and is the default), leaving mode 1 as 800x600
Edited 2020-08-20 22:09 by capsikin
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3165
Posted: 12:18pm 20 Aug 2020
Copy link to clipboard 
Print this post

  vegipete said  What happens if an unquoted string in a data statement is later used as a variable name?

It will stay the same (ie, a string).  This is because the READ command uses the type of the variable being used in the command to determine how to treat the DATA element that it finds.

So, for example, in the latest beta:
  DIM tt = 123
  DATA tt, tt
  READ n, s$

Will result in n having the value 123 and s$ having the value "tt".

As a rule, all strings in DATA statements should be quoted.  Unquoted strings can get messy and they are only allowed in MMBasic because Microsoft BASIC allowed them.  I am not sure why Bill did this but we are now stuck with it.

BTW, the reason why you must quote strings that are the same as function names is that these are turned into single byte tokens when the program is loaded into program memory and the tokeniser does not have the smarts to know that the unquoted string is part of a DATA statement.

  vegipete said  Does "red" only have a particular value when used in the rgb() statement?

Yes, the RGB() function looks for specific text (ie, red, blue, etc) and returns that colour if it finds that text.

Geoff
Geoff Graham - http://geoffg.net
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 3852
Posted: 08:48pm 21 Aug 2020
Copy link to clipboard 
Print this post

Hi Peter,

Could this be made to work? or is there an alternative way to choose a DATA section to restore based on a value held in a variable without using IF or SELECT CASE:

Cls

Read s$
Print s$ ' Prints "foo".

label$ = "foo_label"
Execute "Restore " + label$

Read s$
Print s$ ' I would like this to Print "foo" too.

foo_label:
Data "foo"

bar_label:
Data "bar"


Currently reports:
[7] Error: Unknown command


Regards,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8600
Posted: 09:44pm 21 Aug 2020
Copy link to clipboard 
Print this post

  Quote  Could this be made to work?


No: as I have said many times before I do not and will not change Basic language elements
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 3852
Posted: 09:51pm 21 Aug 2020
Copy link to clipboard 
Print this post

  matherp said  
  Quote  Could this be made to work?


No: as I have said many times before I do not and will not change Basic language elements


Sorry, is that what I asked for? I thought I was asking you to extend EXECUTE to allow it to be used to call RESTORE ... and EXECUTE isn't a Basic language element ... as in you added it specifically for the CMM2.

Regards,

Tom
Edited 2020-08-22 07:52 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8600
Posted: 09:55pm 21 Aug 2020
Copy link to clipboard 
Print this post

My mistake, didn't know restore had an optional parameter. Does it work at all?
 
     Page 4 of 7    
Print this page
© JAQ Software 2024