Uzebox - open source 8 bit console

Feel free to talk about any other retro stuff here including Commodore, Sinclair, Atari, Amstrad, Apple... the list goes on!
Ser Olmy
Posts: 35
Joined: Thu Aug 18, 2022 8:20 pm

Re: Uzebox - open source 8 bit console

Post by Ser Olmy »

Daedalus wrote: Sun Mar 12, 2023 2:52 pm I'm trying to find a "happy place" where you have to stretch to do more with what you have,
It seems people are attracted to the concept of "retro computing" for a variety of reasons.

For me, it's not so much about reliving nostalgia as it is reviving the concept of a truly "personal" computer; one you can fully use and understand. I'm not too bothered about FPGAs vs. discrete chips, or through-hole vs. SMD, but I do want to be able to connect external devices.
Daedalus wrote: Sun Mar 12, 2023 2:52 pmbut don't have so much that you start thinking thoughts like "I have so much RAM, I can use more digital sound!"
I don't long for the times when computers were restricted to producing annoying beeps that would make my ears bleed, or had such limited capabilities that games were playing 10-second tunes in an infinite loop, giving myself and everyone in the vicinity a headache.

While the custom audio and video chips in 8-bit systems were pretty much bleeding-edge technology, the only real reason these systems were restricted to 32, 48 or 64 kb RAM, was cost. The chips were available, they were just too expensive.

Today, RAM is ridiculously cheap by comparison, so why introduce an unnecessary barrier that will only serve to limit the system's potential?
Daedalus wrote: Sun Mar 12, 2023 2:52 pmor "I have so much CPU that I can program it in Node JS!"
This, unfortunately, is true.

Instead of taking advantage of the insanely fast CPUs and ridiculous amounts of RAM found in modern computers to make fast and efficient applications, we keep creating increasingly complex layers of abstraction between the hardware and the programmer. One of the most popular programming languages today is both object-oriented and interpreted, because we can just keep throwing CPU cycles at the problem, right? We're going backwards.
Daedalus wrote: Sun Mar 12, 2023 2:52 pmBut at the same time, the system as delivered should be so simple and minimal that if you have a basic understanding of how 8 bit CPUs work, you can look at a few pages of documentation and understand everything about it's hardware and software on an entry level.
For me, the charm of the 8-bit (and to a somewhat lesser extent, the 16-bit) era, was precisely this: that you could understand the entire system, and that programming meant "hitting the hardware" directly rather than calling APIs.

What I didn't like about 8-bit computing, was having to juggle disks and tapes, waiting for ages for programs to load, and the lack of proper development tools. For instance, using an assembler that took 10 minutes to load and consumed 50% of the system's RAM wasn't great. If your program used a significant amount of RAM, you either had to reboot the entire system in order to test it, or you had to get a second computer.

If I wanted a "pure" retro experience, I could just fire up my C64. I'd like to see a "retro" system that would appeal not only to myself and people of my generation, who have fond memories of 80s and early 90s computing, but also to a younger audience.
Daedalus wrote: Sun Mar 12, 2023 2:52 pmFrom there, tutorials can guide you through installing a BASIC environment and creating simple programs, and eventually setting up a cross development platform and developing programs in assembly and C.
I'd like to skip the cross-development part entirely, and have the necessary tools available on the system itself.

My journey into Z80 assembly language programming started when I got an 8-bit system with an integrated assembler. On the C64, the Action Replay cartridge was the tool that changed 6502 assembly language programming and debugging from being an absolute chore to something quite enjoyable.

Edit: And to get this back on topic, I will not be getting a Uzebox myself. Not because I'd have to use a second system for development (that's quite acceptable for something that's marketed as a console), and not primarily because of the limited RAM available, but because I don't own a single piece of equipment that can accept a composite NTSC signal, and neither does anyone else I know.
danboid
Posts: 38
Joined: Sat Jan 28, 2023 2:47 am

Re: Uzebox - open source 8 bit console

Post by danboid »

Ser Olmy wrote: Sun Mar 12, 2023 6:09 pm Edit: And to get this back on topic, I will not be getting a Uzebox myself. Not because I'd have to use a second system for development (that's quite acceptable for something that's marketed as a console), and not primarily because of the limited RAM available, but because I don't own a single piece of equipment that can accept a composite NTSC signal, and neither does anyone else I know.
I live in the UK so all TVs here are mainly PAL but most half decent ones support NTSC too like my Sony Wega that I got for free off Freecycle.

I've also got a s-video to HDMI adapter so I can plug my Uzebox into my modern (65" PAL) TV. It works great and gives a better picture than using my Sony Wega with its real s-video input and only cost £25.

https://uzebox.org/wiki/RGB_HDMI_Video
User avatar
Daedalus
Posts: 222
Joined: Fri Nov 11, 2022 3:03 am

Re: Uzebox - open source 8 bit console

Post by Daedalus »

Ser Olmy wrote: Sun Mar 12, 2023 6:09 pm I'd like to skip the cross-development part entirely, and have the necessary tools available on the system itself.
Good news! Apparently, that's integrated into r42. Check out the you-tube video by Jestin Stoffel:
https://www.youtube.com/watch?v=N3E0MUsqzQo

This is the kind of "gateway" experience people need to branch out from BASIC and start using assembly. Once they out grow this, they can move to using a cross development computer and modern tools like cc65.
danboid
Posts: 38
Joined: Sat Jan 28, 2023 2:47 am

Re: Uzebox - open source 8 bit console

Post by danboid »

Daedalus wrote: Tue Mar 14, 2023 5:39 pm
Ser Olmy wrote: Sun Mar 12, 2023 6:09 pm I'd like to skip the cross-development part entirely, and have the necessary tools available on the system itself.
Good news! Apparently, that's integrated into r42. Check out the you-tube video by Jestin Stoffel:
https://www.youtube.com/watch?v=N3E0MUsqzQo

This is the kind of "gateway" experience people need to branch out from BASIC and start using assembly. Once they out grow this, they can move to using a cross development computer and modern tools like cc65.
I like that integrated X16 asm IDE - very cool. I have shared this video on the Uzebox forum, I'm sure they'll appreciate it. Thanks!
TomXP411
Posts: 1717
Joined: Tue May 19, 2020 8:49 pm

Re: Uzebox - open source 8 bit console

Post by TomXP411 »

Daedalus wrote: Tue Mar 14, 2023 5:39 pm
Ser Olmy wrote: Sun Mar 12, 2023 6:09 pm I'd like to skip the cross-development part entirely, and have the necessary tools available on the system itself.
Good news! Apparently, that's integrated into r42. Check out the you-tube video by Jestin Stoffel:
https://www.youtube.com/watch?v=N3E0MUsqzQo

This is the kind of "gateway" experience people need to branch out from BASIC and start using assembly. Once they out grow this, they can move to using a cross development computer and modern tools like cc65.
This is more of a sophisticated monitor than a real assembler. It is useful as a debugger and memory viewer, but I still suggest jumping straight into a simple assembler like 64TASS or CBM PRG Studio as a learning tool Using monitors like this and Supermon are a great tool, as well, but for anything more than trivial examples, it gets old fast. =)
User avatar
Daedalus
Posts: 222
Joined: Fri Nov 11, 2022 3:03 am

Re: Uzebox - open source 8 bit console

Post by Daedalus »

Tom,
I would agree that the sooner someone who wants to delve into assembler steps up their game to use an actual assembler as part of a cross development platform, the better.

It's true that CODEX is more of a sophisticated monitor than a real assembler. But it smooths out some of the crucial learning curves that (in my opinion) are stopping people from taking the big step into a cross development platform.

Some of the first learning curves are: Learning Hexadecimal, learning to deal with assembly's simplistic mechanics for moving data, learning assembly's simplistic mechanics for branching, and a big one... learning assembly's math mechanics. Knowing how microprocessors operate and are programmed at the byte level is HUGE, and all you need to get started on that part of the journey is to type "CODEX" into the BASIC prompt. In less than an hour with a you-tube tutorial, you can learn the basics of running CODEX enough to write a "Hello World" program in assembly.

More experienced programmers can write tutorial programs with detailed explanations and upload them to then be downloaded and loaded into CODEX and run as easily as you would a BASIC program.
BruceRMcF
Posts: 222
Joined: Sat Jan 07, 2023 10:33 pm

Re: Uzebox - open source 8 bit console

Post by BruceRMcF »

Where I find the ROM SuperMonitor/IDE thingie intriguing is for developing small SYS routines to speed up parts of the 20% of the code for a Basic game that is doing 80% of the work.
danboid
Posts: 38
Joined: Sat Jan 28, 2023 2:47 am

Re: Uzebox - open source 8 bit console

Post by danboid »

After over three years study and occasional "work", IKD has been released!

IKD is an open source remake of the tank game in Atari's Combat, for those that recall the original Atari console pack-in game, lovingly recreated for the fully open source Uzebox games console. You can also play it under Uzebox emulators like cuzebox.

IKD is notable for a few things. Somehow, in over 40 years no-one has ever bothered to create an open source remake of Combat, despite it being one of the most well known games of the early 8 bit era. We have had literally thousands of space invaders and pacman clones but no Combat clones? Fixed that.

I had never written a C program or a console game before this. IKD proves it is possible for someone with no knowledge of C programming to write a simple Uzebox console game. I have made hundeds of additions to the Uzebox wiki in the process of making this game.

IKD's star feature is that its title screen features a fantastic rendition of the Commando theme, which C64 fans will know as one SID master Rob Hubbard's most loved tracks. Nobody has ever put this much effort into a Uzebox chiptune before and a bug was found and fixed in one of the Uzebox MIDI conversion tools as a result of this being created. Huge thanks to D3thAdd3r for showing us what the Uzebox sound engine can do!

I hope you enjoy my contribution to open source retro gaming.

https://uzebox.org/wiki/index.php?title=IKD

https://github.com/danboid/IKD
User avatar
Daedalus
Posts: 222
Joined: Fri Nov 11, 2022 3:03 am

Re: Uzebox - open source 8 bit console

Post by Daedalus »

Hey! You're right! People haven't been banging out "Combat!" clones like they have been clones of the arcade games. Even "Pong" has been cloneenated billions of times... and it's hands down, the simplest of the bunch.

Ooo! Make a clone of "Computer Space." (Also known as "Syzygy.") That's the game built by Nolan Bushnell and friends before they became "Atari" and was featured as a prop in the movie "Soylent Green" It used a diode array as ROM. how hard could making a clone of that be?

Heh. Probably harder than you might think, for most people, anyway. You say "I had never written a C program or a console game before this." ... well,

I have a theory. The "computer language" or the "platform" aren't the hard parts. The computer language is just a translation job, most people can figure that out, as language is one of the primary skills of humanity. The platform? That's just parts, a system you need to know how to use. People can figure that out, too.

The hard part is logical and critical thinking. You need to be able to assemble abstract entities in your mind and hold logical relationships between them as you sort out the problem you're trying to solve. Then you need to manage that mental juggling by training yourself to only look at a part of the problem at a time, and be disciplined enough to accurately document the parts of the puzzle as you work on them.

I think most people can actually learn to do this... they're just going to be a lot slower at it than someone who can "hold more things in their head at once." But the first step, I think, is to stop thinking that it's the LANGUAGE that makes it easy. It's not. It's the fact that the TASK was easy that made it easy. A "Hello World" program in BASIC is just as easy to understand as one in 6502 machine code. Sure, the mechanics of writing the program are harder in the 6502 version... but that was never the actual "hard part" to begin with.
danboid
Posts: 38
Joined: Sat Jan 28, 2023 2:47 am

Re: Uzebox - open source 8 bit console

Post by danboid »

I suppose my point was that to write this on the 2600 or the NES or whatever you woud've had to write it entirely in assembler or machine code yet here we have a similar spec (to the NES) machine that is open source and it lets you write it all in C which I think is much easier, not knowing assembly. That's AFTER you got a license and dev kit off Nintendo or Atari or whoever whereas you can start developing for the Uzebox within seconds under any Linux distro. You could use Windows or MacOS to develop for it too. Its not got the specs but Its got one of the lowest barriers to entry of any console.

I've created a video of IKD's menu music:

https://www.youtube.com/watch?v=WHyw-VVpPsE
Post Reply