Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 15:13 01 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 : Introducing the Colour Maximite 2

     Page 4 of 25    
Author Message
jman

Guru

Joined: 12/06/2011
Location: New Zealand
Posts: 711
Posted: 07:33pm 04 May 2020
Copy link to clipboard 
Print this post

Fantastic  
         

Regards
Jman
 
Plasmamac

Guru

Joined: 31/01/2019
Location: Germany
Posts: 501
Posted: 08:20pm 04 May 2020
Copy link to clipboard 
Print this post

like the idea , looks cool.

gtx
Plasma
 
flasherror
Senior Member

Joined: 07/01/2019
Location: United States
Posts: 159
Posted: 08:23pm 04 May 2020
Copy link to clipboard 
Print this post

  matherp said  Lots of comments about I/O expansion.

The way I would see this happening is to run a 40-pin cable to a second PCB with whatever is required on that PCB.

A generic I/O PCB could be envisaged with the same footprint as the CMM2. This would allow two boxes to be stacked one on top of the other  with just a short ribbon cable connecting. This PCB could have Click ports, ESP header etc.

This is a much better approach than trying to make the main motherboard generic as it could never satisfy everyone and would end up large, expensive,  and with many redundant capabilities for any individual user.


1. The wave share module page mentions "6 x SPI, 4 x USART, 4 x UART, 1 x LPUART, 3 x I2S". Are there any unused I/O pins (UART etc) from the module that are not currently routed?

2. Manual needs I/O connector details (part # type etc) - Page 8
 
Plasmamac

Guru

Joined: 31/01/2019
Location: Germany
Posts: 501
Posted: 09:45pm 04 May 2020
Copy link to clipboard 
Print this post

i found only a 400 MHZ moodle , not the 480 one. ? any hints
Plasma
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8590
Posted: 09:54pm 04 May 2020
Copy link to clipboard 
Print this post

  Quote  Manual needs I/O connector details (part # type etc) - Page 8

See the construction pack. Cheapest I've found is Farnell 2215300 £0.52 each , 10 off minimum quantity

  Quote  he wave share module page mentions "6 x SPI, 4 x USART, 4 x UART, 1 x LPUART, 3 x I2S". Are there any unused I/O pins (UART etc) from the module that are not currently routed?


Not that can/will be routed

  Quote  i found only a 400 MHZ moodle , not the 480 one. ? any hints


ST have the same part number for the 400 "Y" and 480 "V" variants so there is no way of knowing which you will get. Current ship from ST are all now "V" but it is still pot luck. The performance difference won't be material for most applications
 
MauroXavier
Guru

Joined: 06/03/2016
Location: Brazil
Posts: 303
Posted: 10:44pm 04 May 2020
Copy link to clipboard 
Print this post

Final Fight CMM2 Demo 0.1a

Here is a little video showing a piece of the power of Colour Maximite 2.

It's only a short demo, but I guess it's enough to have an idea what's is waiting for you.

More videos will be uploaded soon...
 
Chopperp

Guru

Joined: 03/01/2018
Location: Australia
Posts: 1032
Posted: 11:27pm 04 May 2020
Copy link to clipboard 
Print this post

Looks good
ChopperP
 
flasherror
Senior Member

Joined: 07/01/2019
Location: United States
Posts: 159
Posted: 12:10am 05 May 2020
Copy link to clipboard 
Print this post

  MauroXavier said  Final Fight CMM2 Demo 0.1a

Here is a little video showing a piece of the power of Colour Maximite 2.

It's only a short demo, but I guess it's enough to have an idea what's is waiting for you.


Very nice. I remember the original Capcom CPS1 arcade board - used for many arcade games including Final Fight and Street Fighter 2) - 3 stacked boards (CPU, ROM, and Custom graphics chip). Seeing the demo running on basically a single chip (in BASIC!) vs the original CPS1's 10 MHz 68000 (& Z80 sound CPU) really shows how far we've come.

What would be helpful would be some tutorials on programming the new graphics.

Can you do raster line effects (interrupt or run code at specific screen lines? I'm guessing no, because BASIC wouldn't be fast enough?

Appendix E seems to indicate that the max sprites is 50, Is this correct? (assuming you cannot multiplex sprites?). The documentation should state limit somewhere apart from Appendix E.
 
bigmik

Guru

Joined: 20/06/2011
Location: Australia
Posts: 2870
Posted: 12:34am 05 May 2020
Copy link to clipboard 
Print this post

Very well done team,

I too had been wondering what was afoot... I knew something was happening but not exactly what..

My first thought was why VGA and not HDMI but looking deeper i see it was the right choice due to native support inbuilt and I must say the video demos are really good..  

No!! Not Good...

Bloody fantastic...

That ghost and its transparency... wow..
And Mauro’s kick boxer game demo..  what can I say?? Brilliant.

Whilst I have always been more of a micromite CONTROLLER style bloke rather than a Maximite COMPUTER one, I am definitely going to have to add one of these to my collection.

Great work, and it is amazing to see what can be done in BASIC.

If anyone is getting a batch of boards made I am happy to pay my share to buy one, or I may get a batch and try to turn them over myself.

Regards,

Mick
Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<<
 
MauroXavier
Guru

Joined: 06/03/2016
Location: Brazil
Posts: 303
Posted: 01:49am 05 May 2020
Copy link to clipboard 
Print this post

  flasherror said  Can you do raster line effects (interrupt or run code at specific screen lines? I'm guessing no, because BASIC wouldn't be fast enough?

Appendix E seems to indicate that the max sprites is 50, Is this correct? (assuming you cannot multiplex sprites?). The documentation should state limit somewhere apart from Appendix E.

Believe me, you don't need any tricks, but you can do raster effects easily because the video is hardware accelerated.

About the sprites, it doesn't limit about it, if you use blit commands you can make more than 1000 "blit emulated sprites" on screen with any size. If you use 320x200x256 mode, you have 27 screen pages, more than enough to store animated sprites, and with the flip and rotation, it's very easy to make some great arcade games.

You don't need to worry about any sprite tricks, just put the images in one not visible page and then copy to the visible page, then clear the not visible page and do it again and again. It's stupidly fast, enough to reach 75 FPS.

For example, I put all enemies of Final Fight with all animations in 10 pages of 320x200x256, and I have 2 pages to use for stage parallax and others to any other things (players, objects, effects, etc).
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3165
Posted: 01:56am 05 May 2020
Copy link to clipboard 
Print this post

  flasherror said  What would be helpful would be some tutorials on programming the new graphics.

Yes, something for the future.

  flasherror said  Can you do raster line effects (interrupt or run code at specific screen lines?

When drawing to the main page being displayed on the monitor the programmer can use the GETSCANLINE function to report on the line that is currently being drawn on the VGA monitor.  MMBaasic is plenty fast on the CMM2 to work with this.

A similar outcome can be achieved using an optional feature of the MODE command which will call a user defined subroutine at the start of the VGA frame blanking.

Finally, you have multiple video pages at your disposal so what you could do is build your new graphics on a non display page then ask MMBasic to automatically copy to the display page on the next frame blanking.

  flasherror said  Appendix E seems to indicate that the max sprites is 50, Is this correct?

Yes (but see the comments from Mauro above).
Edited 2020-05-05 11:58 by Geoffg
Geoff Graham - http://geoffg.net
 
MauroXavier
Guru

Joined: 06/03/2016
Location: Brazil
Posts: 303
Posted: 02:36am 05 May 2020
Copy link to clipboard 
Print this post

New video!

This time you see what you can do with MMBasic using the sound waveforms provided by the CMM2: sine, square, triangle, sawtooth, and noise.

PSGMini Demo - SN76489 / NES APU Simulator and VGM Player

PS.: Sorry about my English, but I'm trying to catch a wider audience.
 
hitsware2

Guru

Joined: 03/08/2019
Location: United States
Posts: 705
Posted: 02:58am 05 May 2020
Copy link to clipboard 
Print this post

  MauroXavier said  New video!

This time you see what you can do with MMBasic using the sound waveforms provided by the CMM2: sine, square, triangle, sawtooth, and noise.

PSGMini Demo - SN76489 / NES APU Simulator and VGM Player

PS.: Sorry about my English, but I'm trying to catch a wider audience.

Thank You ! ....... I ' going to check out the SOUND commands !
my site
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8590
Posted: 07:39am 05 May 2020
Copy link to clipboard 
Print this post

All, if you haven't then please look at Mauro's videos as they really show what is possible with the Colour Maximite 2.

His work is extra-ordinary. Remember he is programming purely in interpreted Basic. There are no tricks or C routines and no special hidden functions. Everything he is using is described in the user manual (except his inventiveness and talent - unfortunately we can't document that   ).

Of course, the base of this is the speed we have been able to achieve despite the CMM2 using an interpreted Basic. Using a simple test we are seeing over 270,000 Basic lines per second on the fastest 480MHz processor. Even complex operations are fast. For example it takes less than 1/2 of one millisecond to copy an entire 320x240x16 image between framebuffers which is less than the frame-blanking time on the VGA monitor

And this speed is not just relevant to video manipulation. Calculating CDEagle's solar eclipse example takes just 15.7 seconds on the CMM2 compared to over 2 minutes on a MM+
The CMM2 is also significantly faster than the ArmmiteH7 in this test (15.7 vs 23.1) which demonstrates most clearly the impact of the various optimisations that have been included.
Edited 2020-05-05 17:44 by matherp
 
Tinine
Guru

Joined: 30/03/2016
Location: United Kingdom
Posts: 1646
Posted: 09:30am 05 May 2020
Copy link to clipboard 
Print this post

  MauroXavier said  Final Fight CMM2 Demo 0.1a

Here is a little video showing a piece of the power of Colour Maximite 2.

It's only a short demo, but I guess it's enough to have an idea what's is waiting for you.

More videos will be uploaded soon...


Wow, great video  

That could be a commercial; "Come visit Blackpool"  
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3659
Posted: 09:44am 05 May 2020
Copy link to clipboard 
Print this post

  matherp said  All, if you haven't then please look at Mauro's videos as they really show what is possible with the Colour Maximite 2.

His work is extra-ordinary.


Couldn't agree more - stunning stuff.

John
 
flasherror
Senior Member

Joined: 07/01/2019
Location: United States
Posts: 159
Posted: 02:30pm 05 May 2020
Copy link to clipboard 
Print this post

  Geoffg said  
  flasherror said  What would be helpful would be some tutorials on programming the new graphics.

Yes, something for the future.


The next thing that occurs to me is that we need a windowing library to build apps without reinventing the GUI.

The other next crazy idea is:
If MMBasic runs so fast, is it possible to write a workable multitasking OS and actually split a program in separate tasks?
 
flasherror
Senior Member

Joined: 07/01/2019
Location: United States
Posts: 159
Posted: 02:57pm 05 May 2020
Copy link to clipboard 
Print this post

  matherp said  
  Quote  Manual needs I/O connector details (part # type etc) - Page 8

See the construction pack. Cheapest I've found is Farnell 2215300 £0.52 each , 10 off minimum quantity

  Quote  he wave share module page mentions "6 x SPI, 4 x USART, 4 x UART, 1 x LPUART, 3 x I2S". Are there any unused I/O pins (UART etc) from the module that are not currently routed?


Not that can/will be routed


1. Link to construction pack docs?

2. Not to keep harping on I/O but if there were unused (say spare UART) pins on the wave share module AND MMBasic supported these, then an end user could simply connect these pins and code. I think you mentioned in another post that unused devices aren't accessible from MMBasic?

3. Would it have been possible to include 2 Nunchuck connectors rather than one (since I believe they are I2C)?
Edited 2020-05-06 01:14 by flasherror
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8590
Posted: 03:14pm 05 May 2020
Copy link to clipboard 
Print this post

  Quote  1. Link to construction pack docs?


First page, first post

2. Not to keep harping on I/O but if there were unused (say spare UART) pins on the wave share module AND MMBasic supported these, then an end user could simply connect these pins and code. I think you mentioned in another post that unused devices aren't accessible from MMBasic?


I'm sorry that 3 UART, 2 SPI, 3 I2C etc. isn't enough for you but that is the design we are offering.

  Quote  The other next crazy idea is:
If MMBasic runs so fast, is it possible to write a workable multitasking OS and actually split a program in separate tasks?


This is easy to do using timer interrupts and a trivial main program function launcher. If you need more use a Pi or PC

  Quote  The next thing that occurs to me is that we need a windowing library to build apps without reinventing the GUI.


You have all the functionality needed to write whatever you need. There is no one-size-fits all GUI and we didn't want to add more complexity to the language.
 
MauroXavier
Guru

Joined: 06/03/2016
Location: Brazil
Posts: 303
Posted: 03:16pm 05 May 2020
Copy link to clipboard 
Print this post

  flasherror said  The other next crazy idea is:
If MMBasic runs so fast, is it possible to write a workable multitasking OS and actually split a program in separate tasks?

Not a crazy idea... I think in the same thing but the part of split a program in separate tasks we must probably have some restrictions:

1) The program must be made in another language that can be reinterpreted inside MMBasic (yes, the interpreter running other interpreted language).

2) The program called can be other MMBasic but to run it the OS will make a snapshot and shutdown to run another native program.

Create another language to make MMBasic interpret it appears to be a bad idea, but isn't. It's possible to create a simple tokenized language but at maximum will be the speed of the original CMM.

Only ideas, for now I will make some games ;)
 
     Page 4 of 25    
Print this page
© JAQ Software 2024