Compukit UK101 core

danielb
Core Developer
Posts: 230
Joined: Thu Jun 04, 2020 1:43 pm
Has thanked: 44 times
Been thanked: 66 times

Re: Compukit UK101 core

Unread post by danielb »

Alkadian wrote: Tue Aug 17, 2021 1:25 pm
danielb wrote: Tue Aug 17, 2021 12:59 pm Space Invaders on the UK101 core - this is a machine code game loaded through the Monitor program.

D
Simply awesome, so fascinating! I can't wait to try a few games as well if/when games will become available to download. Thanks!
I don't think there were ever many games for this system. Everybody's friend Google will find them for you.

D.
User avatar
Alkadian
Top Contributor
Posts: 728
Joined: Thu May 28, 2020 9:55 am
Has thanked: 294 times
Been thanked: 119 times

Re: Compukit UK101 core

Unread post by Alkadian »

danielb wrote: Tue Aug 17, 2021 2:13 pm
Alkadian wrote: Tue Aug 17, 2021 1:25 pm
danielb wrote: Tue Aug 17, 2021 12:59 pm Space Invaders on the UK101 core - this is a machine code game loaded through the Monitor program.

D
Simply awesome, so fascinating! I can't wait to try a few games as well if/when games will become available to download. Thanks!
I don't think there were ever many games for this system. Everybody's friend Google will find them for you.

D.
Perfect, I will proceed on this basis then :lol:
danielb
Core Developer
Posts: 230
Joined: Thu Jun 04, 2020 1:43 pm
Has thanked: 44 times
Been thanked: 66 times

Re: Compukit UK101 core

Unread post by danielb »

Hi all,

I just pushed a new version of the core.

This version allows the screen size to be switched between 64x32 characters and 48x16, which was the original size on the UK101, apparently.

It also allows the ROM monitor to be switched between Cegmon, and MonUK02, or NewMon, which is older and more original.

This ROM is much more compatible with the available games, e.g. 8K Super Invaders now runs, as does Le Passe-Temps. This ROM is not compatible with the 64x32 screen size, so selecting it locks that mode out. The one drawback (for me) is that the text with this ROM is too far to the right. With Cegmon, I was able to patch it to move the text to the left, but I am unable to find info on how to do this with MonUK02. In any case, the text is not cut off at the right, so I released it like this. I will hopefully fix this at some point.

After switching ROMS, do a cold reset. After switching screen sizes, the system will continue to run, but doing a cold or warm reset will set the proper values for the edges of the screen, which have to be read from the ROM.

Please let me know if you find any issues.

Rgds,

D.
Attachments
Cegmon48x16.jpg
Cegmon48x16.jpg (66.32 KiB) Viewed 6969 times
superinvaders.jpg
superinvaders.jpg (78.2 KiB) Viewed 6970 times
lepassetemps.jpg
lepassetemps.jpg (109.92 KiB) Viewed 6970 times
User avatar
pgimeno
Top Contributor
Posts: 709
Joined: Thu Jun 11, 2020 9:44 am
Has thanked: 277 times
Been thanked: 226 times

Re: Compukit UK101 core

Unread post by pgimeno »

Hi danielb,

Would it be possible to use the system's scaler? It looks like this core is doing its own scaling rather than letting the system do it, which results in non-uniform pixel columns, which also go into the snapshots, and that also makes the Aspect Ratio option from the menu or the integer scaling options from the INI not work.
danielb
Core Developer
Posts: 230
Joined: Thu Jun 04, 2020 1:43 pm
Has thanked: 44 times
Been thanked: 66 times

Re: Compukit UK101 core

Unread post by danielb »

Hi,

I'd be happy to do this, if you can point me in the direction of some documentation on how it is done.

Lack of documentation is a SERIOUS hurdle to writing a core. I have been looking in other cores to see how they are written but this is not always enough.

As I said before, this is my noob project, so some documentation would be a big help.

D.
User avatar
pgimeno
Top Contributor
Posts: 709
Joined: Thu Jun 11, 2020 9:44 am
Has thanked: 277 times
Been thanked: 226 times

Re: Compukit UK101 core

Unread post by pgimeno »

danielb wrote: Sat Aug 21, 2021 11:57 am Hi,

I'd be happy to do this, if you can point me in the direction of some documentation on how it is done.

Lack of documentation is a SERIOUS hurdle to writing a core. I have been looking in other cores to see how they are written but this is not always enough.

As I said before, this is my noob project, so some documentation would be a big help.

D.
I hear you. I'm currently working on a software project, but when I get back to the FPGA world I have some tutorials to watch because there isn't any documentation that I could find. Anyway, for this specific problem, this thread may help:

viewtopic.php?t=419

There's also this series by alanswx that I have in my to-watch list:

https://www.youtube.com/watch?v=81GN5DLCFOk

and accompanying repository: https://github.com/alanswx/Tutorials_MiSTer
User avatar
NML32
Posts: 298
Joined: Sun May 24, 2020 6:57 pm
Has thanked: 301 times
Been thanked: 51 times

Re: Compukit UK101 core

Unread post by NML32 »

Is there a way to slow down Super Invaders. The game seems to run very fast.
danielb
Core Developer
Posts: 230
Joined: Thu Jun 04, 2020 1:43 pm
Has thanked: 44 times
Been thanked: 66 times

Re: Compukit UK101 core

Unread post by danielb »

NML32 wrote: Sat Aug 21, 2021 2:59 pm Is there a way to slow down Super Invaders. The game seems to run very fast.
Hi,

I found this on another forum, apparently written by Grant himself:

"Additionally, the speed of the space invaders is actually controlled by sending characters to the serial port ( ! ). As my FPGA currently runs at 9600BAUD instead of 300BAUD it runs too fast. You will need to change the VHDL to use 300 baud (already commented with appropriate values in the VHDL clock divider code) then make sure the serial terminal is set to 300 baud when doing the "LOAD" from within BASIC. Once you have made that speed change, it runs exactly the same as the original ."

I'll see what I can do about it

D.
danielb
Core Developer
Posts: 230
Joined: Thu Jun 04, 2020 1:43 pm
Has thanked: 44 times
Been thanked: 66 times

Re: Compukit UK101 core

Unread post by danielb »

pgimeno wrote: Sat Aug 21, 2021 1:07 pm
danielb wrote: Sat Aug 21, 2021 11:57 am Hi,

I'd be happy to do this, if you can point me in the direction of some documentation on how it is done.

Lack of documentation is a SERIOUS hurdle to writing a core. I have been looking in other cores to see how they are written but this is not always enough.

As I said before, this is my noob project, so some documentation would be a big help.

D.
I hear you. I'm currently working on a software project, but when I get back to the FPGA world I have some tutorials to watch because there isn't any documentation that I could find. Anyway, for this specific problem, this thread may help:

viewtopic.php?t=419

There's also this series by alanswx that I have in my to-watch list:

https://www.youtube.com/watch?v=81GN5DLCFOk

and accompanying repository: https://github.com/alanswx/Tutorials_MiSTer
Thanks.

D.
User avatar
RedskullDC
Posts: 29
Joined: Fri Jul 03, 2020 2:10 pm
Has thanked: 4 times
Been thanked: 25 times

Re: Compukit UK101 core

Unread post by RedskullDC »

Hi Danielb,
danielb wrote: Sat Aug 21, 2021 10:59 am ....
The one drawback (for me) is that the text with this ROM is too far to the right. With Cegmon, I was able to patch it to move the text to the left, but I am unable to find info on how to do this with MonUK02. In any case, the text is not cut off at the right, so I released it like this. I will hopefully fix this at some point.
Not sure if this will be of use to you?

http://uk101.sourceforge.net/docs/config.html

Half way down the page, has details on patching MONUK02.

Regards,
Leslie
danielb
Core Developer
Posts: 230
Joined: Thu Jun 04, 2020 1:43 pm
Has thanked: 44 times
Been thanked: 66 times

Re: Compukit UK101 core

Unread post by danielb »

Thanks.I'll see if I can use it

Meanwhile, I'm on holiday for a couple of days, when I get back on Wednesday, I'll be releasing a version with selectable baud rate. It actually does fix the speed of Super Invaders.

This is proving to be a weird and interesting system, with some really bizarre quirks :)

D
EeDee
Posts: 261
Joined: Thu Dec 24, 2020 12:33 pm
Has thanked: 13 times
Been thanked: 48 times

Re: Compukit UK101 core

Unread post by EeDee »

danielb wrote: Thu Aug 12, 2021 2:36 pm

Thanks to everyone for the feedback. I am happy to see that the core seems to be working for everyone.

As for future developments, I am looking forward to attempting to get saving and loading via ADC working. Not sure what else I can add to it ..

Daniel
Thanks for the additions so for ;-)
danielb
Core Developer
Posts: 230
Joined: Thu Jun 04, 2020 1:43 pm
Has thanked: 44 times
Been thanked: 66 times

Re: Compukit UK101 core

Unread post by danielb »

Hi all,

I pushed the new version with selectable baud rate. Load Super Invaders at 9600 baud as usual, then change to 300 to make the game run at its proper speed.

D.
EeDee
Posts: 261
Joined: Thu Dec 24, 2020 12:33 pm
Has thanked: 13 times
Been thanked: 48 times

Re: Compukit UK101 core

Unread post by EeDee »

Thank you. Hope you enjoyed your holiday
User avatar
NML32
Posts: 298
Joined: Sun May 24, 2020 6:57 pm
Has thanked: 301 times
Been thanked: 51 times

Re: Compukit UK101 core

Unread post by NML32 »

danielb wrote: Tue Aug 24, 2021 6:45 pm Hi all,

I pushed the new version with selectable baud rate. Load Super Invaders at 9600 baud as usual, then change to 300 to make the game run at its proper speed.

D.
Thank you, Super Invaders plays much better at 300 baud.
https://youtu.be/gX-o_uXxOFE

:)
danielb
Core Developer
Posts: 230
Joined: Thu Jun 04, 2020 1:43 pm
Has thanked: 44 times
Been thanked: 66 times

Re: Compukit UK101 core

Unread post by danielb »

Great video!
User avatar
NML32
Posts: 298
Joined: Sun May 24, 2020 6:57 pm
Has thanked: 301 times
Been thanked: 51 times

Re: Compukit UK101 core

Unread post by NML32 »

danielb wrote: Tue Aug 24, 2021 10:09 pmGreat video!
I had a question about the Super Invader graphics from the YT video I posted. :?:

Jac Goudsmit • 4 hours ago (edited)
Is there something wrong with the character set or the emulation? I've never seen this game on the UK101/Superboard before but if looks like the graphics are displayed wrong, like there's an off-by-one error in the emulation of the character ROM or something, so that it shows one pixel from the wrong character on each line or something.
danielb
Core Developer
Posts: 230
Joined: Thu Jun 04, 2020 1:43 pm
Has thanked: 44 times
Been thanked: 66 times

Re: Compukit UK101 core

Unread post by danielb »

I'll take a look at it. :shock:

Meanwhile, I am trying, with limited success so far, to implement loading text files from the OSD instead of from the UART.

Since all available software software for the system seems to be in the form of text files, this makes more sense than loading tapes via the ADC.

D.
User avatar
pgimeno
Top Contributor
Posts: 709
Joined: Thu Jun 11, 2020 9:44 am
Has thanked: 277 times
Been thanked: 226 times

Re: Compukit UK101 core

Unread post by pgimeno »

I've tried to set up the comm port without using minicom, but I was unsuccessful. At best, if I open minicom and quit with Ctrl-A Q [Yes], it works (until the next reboot), but I couldn't configure it properly from the command line from zero. It seems like minicom sets some parameter of the device that stty is unable to set. I even compared the output of stty with that after closing minicom without reset, and got identical results but it still didn't work.

Any idea how to make it work without opening minicom? Here's the script I've been trying to get working:

Code: Select all

#!/bin/sh
stty -F /dev/ttyS1 9600 cs8 -parenb -cstopb  # 9600 8 N 1
ascii-xfr -sdv /media/fat/games/UK101/"$1" > /dev/ttyS1
danielb
Core Developer
Posts: 230
Joined: Thu Jun 04, 2020 1:43 pm
Has thanked: 44 times
Been thanked: 66 times

Re: Compukit UK101 core

Unread post by danielb »

Hardware flow control needs to be on. This is set as default by Minicom, but may not be set in your script. I also tried the same thing you did but never worked out how to configure it.

D.
danielb
Core Developer
Posts: 230
Joined: Thu Jun 04, 2020 1:43 pm
Has thanked: 44 times
Been thanked: 66 times

Re: Compukit UK101 core

Unread post by danielb »

NML32 wrote: Fri Aug 27, 2021 8:50 am
danielb wrote: Tue Aug 24, 2021 10:09 pmGreat video!
I had a question about the Super Invader graphics from the YT video I posted. :?:

Jac Goudsmit • 4 hours ago (edited)
Is there something wrong with the character set or the emulation? I've never seen this game on the UK101/Superboard before but if looks like the graphics are displayed wrong, like there's an off-by-one error in the emulation of the character ROM or something, so that it shows one pixel from the wrong character on each line or something.
Hi all,

I am posting here a development version with greatly improved graphic resolution and more memory. I am not sure whether I should release it, because the glitchy graphics are still there.
There seem to me to be two possibilities: either the character set itself it corrupted, or the VGA rendering doesn't work properly. I am leaning towards the first possibility, because the problem only manifests itself in certain graphic characters; text display is always fine. I will make some enquiries online and see if I can fix the problem.

Eventually I would like to redo the display the "MiSTer way", but that will take some time.

D.
Attachments
UK101_20210828.zip
(744.89 KiB) Downloaded 180 times
danielb
Core Developer
Posts: 230
Joined: Thu Jun 04, 2020 1:43 pm
Has thanked: 44 times
Been thanked: 66 times

Re: Compukit UK101 core

Unread post by danielb »

Hi all,

Another update...

I have solved the graphic glitches. I worked out how to do things "the MiSTer way", dumped the VGA interface, and I am now feeding Grant Searle's original video through the Mister scaler etc.

The result is perfect graphics. At the moment only at 48x16 characters.

Needless to say, I am rather chuffed... :) It will take a while till I can release this, since not all details are working, and parts of the menu needs redoing, so I am just posting some pictures for now.

Thanks everyone for the feedback. I probably wouldn't even have noticed the problems without it.

D.
Attachments
pic3.jpg
pic3.jpg (73.25 KiB) Viewed 7157 times
pic2.jpg
pic2.jpg (69.88 KiB) Viewed 7157 times
pic1.jpg
pic1.jpg (81.28 KiB) Viewed 7157 times
EeDee
Posts: 261
Joined: Thu Dec 24, 2020 12:33 pm
Has thanked: 13 times
Been thanked: 48 times

Re: Compukit UK101 core

Unread post by EeDee »

Good news and thanks for your work
User avatar
NML32
Posts: 298
Joined: Sun May 24, 2020 6:57 pm
Has thanked: 301 times
Been thanked: 51 times

Re: Compukit UK101 core

Unread post by NML32 »

@danielb, good job, that looks much better. :)
User avatar
pgimeno
Top Contributor
Posts: 709
Joined: Thu Jun 11, 2020 9:44 am
Has thanked: 277 times
Been thanked: 226 times

Re: Compukit UK101 core

Unread post by pgimeno »

danielb wrote: Fri Aug 27, 2021 9:07 pm Hardware flow control needs to be on. This is set as default by Minicom, but may not be set in your script. I also tried the same thing you did but never worked out how to configure it.

D.
That was it, thanks! This sets the correct parameters to not depend on minicom:

Code: Select all

#!/bin/sh
stty -F /dev/ttyS1 9600 cs8 -parenb -cstopb crtscts # 9600 8 N 1 Hardware flow control
ascii-xfr -sdv /media/fat/games/UK101/"$1" > /dev/ttyS1
The only change with respect to the previous script is the addition of crtscts (for hardware flow control through RTS/CTS)

Edit: And thanks for the MiSTer scaler update! I'm looking forward to the release.
danielb
Core Developer
Posts: 230
Joined: Thu Jun 04, 2020 1:43 pm
Has thanked: 44 times
Been thanked: 66 times

Re: Compukit UK101 core

Unread post by danielb »

pgimeno wrote: Mon Aug 30, 2021 1:15 am
danielb wrote: Fri Aug 27, 2021 9:07 pm Hardware flow control needs to be on. This is set as default by Minicom, but may not be set in your script. I also tried the same thing you did but never worked out how to configure it.

D.
That was it, thanks! This sets the correct parameters to not depend on minicom:

Code: Select all

#!/bin/sh
stty -F /dev/ttyS1 9600 cs8 -parenb -cstopb crtscts # 9600 8 N 1 Hardware flow control
ascii-xfr -sdv /media/fat/games/UK101/"$1" > /dev/ttyS1
The only change with respect to the previous script is the addition of crtscts (for hardware flow control through RTS/CTS)

Edit: And thanks for the MiSTer scaler update! I'm looking forward to the release.
Glad you got it to work. This will be very useful.

D.
danielb
Core Developer
Posts: 230
Joined: Thu Jun 04, 2020 1:43 pm
Has thanked: 44 times
Been thanked: 66 times

Re: Compukit UK101 core

Unread post by danielb »

Hi all,

Here's another development version. It has the new graphics system and 64K of RAM. You can play SuperInvaders with no graphics glitches.

All of the MiSTer scaling etc. seems to be working, except for the scandoubler effects and scan lines, which create a blurry misaligned picture. I have left it in, so if anyone has any idea where the problem could be, please let me know. I tried to make sure everything synced up, and I can't find what's wrong with it.

Anyway, this is a barebones implementation of the original UK101, and I would like to release this as a baseline release once the scandoubler problem is fixed (hopefully). After that, I'll add more features.

D.
Attachments
UK101_20210831.zip
(805.54 KiB) Downloaded 182 times
User avatar
pgimeno
Top Contributor
Posts: 709
Joined: Thu Jun 11, 2020 9:44 am
Has thanked: 277 times
Been thanked: 226 times

Re: Compukit UK101 core

Unread post by pgimeno »

Thanks a lot, that's a huge improvement! Now the screen can be shown with uniform pixels, which was something that drove me mad in the previous version, and the screenshots also have uniform pixels. And the graphics of Super Invaders look great!

I don't care about the scandoubler FX, but something's wrong with the integer H/V scale. Sometimes it is good, sometimes it is wrong; it seems to change between resets (I used the menu reset only, not sure if it will be reproducible with Ctrl+LAlt+RAlt or the User button).

It can be reproduced as follows: 1) set Scale to Wider HV-Integer; 2) reset; 3) press C, Return, Return; 4) enter the following line (don't miss the semicolon): FORR=1TO48:?CHR$(187);:NEXT

Character 187 is a chequerboard pattern. When not all pixels are uniform, it should be apparent. It seems to happen about 50% of the time; the other 50% they look fine. For reference, the attached pic shows the problem when it isn't correct.
Attachments
nonuniform-pixel-columns.jpg
nonuniform-pixel-columns.jpg (43.03 KiB) Viewed 6718 times
danielb
Core Developer
Posts: 230
Joined: Thu Jun 04, 2020 1:43 pm
Has thanked: 44 times
Been thanked: 66 times

Re: Compukit UK101 core

Unread post by danielb »

pgimeno wrote: Wed Sep 01, 2021 1:37 am Thanks a lot, that's a huge improvement! Now the screen can be shown with uniform pixels, which was something that drove me mad in the previous version, and the screenshots also have uniform pixels. And the graphics of Super Invaders look great!

I don't care about the scandoubler FX, but something's wrong with the integer H/V scale. Sometimes it is good, sometimes it is wrong; it seems to change between resets (I used the menu reset only, not sure if it will be reproducible with Ctrl+LAlt+RAlt or the User button).

It can be reproduced as follows: 1) set Scale to Wider HV-Integer; 2) reset; 3) press C, Return, Return; 4) enter the following line (don't miss the semicolon): FORR=1TO48:?CHR$(187);:NEXT

Character 187 is a chequerboard pattern. When not all pixels are uniform, it should be apparent. It seems to happen about 50% of the time; the other 50% they look fine. For reference, the attached pic shows the problem when it isn't correct.

Hi,

Thanks very much for looking into this. I'll see if I can fix it...

D.
danielb
Core Developer
Posts: 230
Joined: Thu Jun 04, 2020 1:43 pm
Has thanked: 44 times
Been thanked: 66 times

Re: Compukit UK101 core

Unread post by danielb »

pgimeno wrote: Wed Sep 01, 2021 1:37 am Thanks a lot, that's a huge improvement! Now the screen can be shown with uniform pixels, which was something that drove me mad in the previous version, and the screenshots also have uniform pixels. And the graphics of Super Invaders look great!

I don't care about the scandoubler FX, but something's wrong with the integer H/V scale. Sometimes it is good, sometimes it is wrong; it seems to change between resets (I used the menu reset only, not sure if it will be reproducible with Ctrl+LAlt+RAlt or the User button).

It can be reproduced as follows: 1) set Scale to Wider HV-Integer; 2) reset; 3) press C, Return, Return; 4) enter the following line (don't miss the semicolon): FORR=1TO48:?CHR$(187);:NEXT

Character 187 is a chequerboard pattern. When not all pixels are uniform, it should be apparent. It seems to happen about 50% of the time; the other 50% they look fine. For reference, the attached pic shows the problem when it isn't correct.
Hi,

I think that the attached version solves the uneven pixel problem.

It seems to me that this kind of detail actually differs slightly depending on the resolution and aspect ratio of your display, so I would really appreciate some feedback on whether this version looks OK to you.

I think I am going to release this version, with scandoubler effects removed from the menu; it is much better than the current official version, and a good base for future improvements. I was kind of hoping that fixing the pixel problem would also fix the scandoubler, but, although it is better than it was before, it is still not right.

D.
Attachments
UK101_20210901.zip
(808.54 KiB) Downloaded 164 times
Post Reply