Hacker News new | past | comments | ask | show | jobs | submit login

I was originally interested in this, but I recently found a seemingly good alternative in the Color Maximite 2 (http://geoffg.net/maximite.html) which sits somewhere between 8bit (feel) and 16bit (graphics).



You can get a similar feel, very inexpensively, with an ESP32. Tiny Basic[1] and the FabGL vga library[2] turn an ESP32 into a reasonable retro clone. You can even find an ESP32 that already has PS/2 and VGA connectors for $11[3].

[1] https://github.com/BleuLlama/TinyBasicPlus

[2] https://github.com/fdivitto/fabgl

[3] https://www.tindie.com/products/ttgo/lilygor-ttgo-vga32_v14-...


I think that for such modern retro style systems is very important to have a huge community and because of this a legacy compatible systems like ZX Spectrum Next[1] or MEGA65[2] or systems designed from persons with a huge audience like David Murray[3] are clear winners.

ESP32, TinyBasic and FabGL look cool, but it seems that there is not enough people knowing about them and wanting to develop software for/with them. Unfortunately the same can also be said for the Maximite series of machines. I wasn't able to find any dedicated FabGL or Maximite community sites.

The same cannot be said for the upper mentioned computers which apparently already have significant community and some people actively developing games and other software for them. ZX Spectrum Next even have a dedicated distribution site[4]. Commander X16's official site has community downloads section[5] which looks similar.

If someone wants only to have some fun programming a retro like machine in Basic or in C++ with FabGL, ESP32 is really a cheep alternative, but most probably what he does with it, will stay only his own personal experience and he will not have a huge chance to find some audience or community.

[1]https://www.specnext.com/

[2]https://mega65.org/

[3]http://www.the8bitguy.com/

[4]https://www.spectrumnextgames.uk/

[5]https://www.commanderx16.com/forum/index.php?/files/category...


Something I found frustrating - the Maximite repl goes out of its way to prevent the user from writing machine code. This is not in the spirit of classic systems.

Maximite lacks memory protection, and does allow direct writes to memory. There will be a way to over-write a basic function in order to hijack initiative into machine code.

More, http://songseed.org/dinghy/d.pic32.platform.html


I was going to post a similar thing. I know the 8 bit guy reviewed it positively, and for me the CM2 is a better bet as it can run BASIC code about as fast as a 6505 can run assembler.

I know it's not as legitimately retro (in terms of chips), but that doesn't matter to me; what does matter is having an accessible system to play about with and hopefully show my son that programming can be fun and he can make games without an impossibly step learning curve (ie how I felt about my ZX spectrum back in the day).


I hope it works out. I was excited to get my kids interested in programming like I was in the early 80s. What I discovered was some combo of my kids are their own people and not my clones, but I think more importantly, the bar for computer magic has risen. When I was 8-12 just making a computer do anything was magic. Computers were mysterious and still a bit rare. Today my kids are growing up in a world of total computer saturation from phones to pads to laptops to the cloud. Much as I wished programming would capture fire for them like it did for me, there is no magic for them in making the computer do a few simple things. The world still sort of awaits the next paradigm to spark the next generation of inventors and creators.


Yep I briefly had my 10 year old snagged on Pico-8 last week -- he immediately and intuitively seemed to understand what was going on as we kind of pair programmed together -- until I left the room. Then he just started playing other people's Pico-8 games and described the whole thing as boring.

He's got potential as a programmer. Maybe someday someone will pay him to do it. But you're right, computers now can do everything so easily, there's no glory in doing simple things for the sake of it.


First, wow! I didn't know about the Pico-8. Seems fun! I like that its limitations can foster creativity.

Second, maybe your son needs more time. Back when I was a kid, I played a bit with BASIC on my C64 but it was very frustrating and I gave up trying to do something complex, and ended up just playing games, much to my parents' chagrin.

I ended up a programmer :)


> I know it's not as legitimately retro (in terms of chips), but .. what does matter is having an accessible system to play about with ... (ie how I felt about my ZX spectrum back in the day).

Hopefully we'll see more focus on RISC-V chips in the future. A RISC-V based, maximite-like system would bring assembly-level programming that's as simple and accessible as it could feasibly be, and quite comparable to the ease of writing assembly for the old 8-bit chips.


I had started on a project like this, which I was calling "Retro V" (retro 5... is alive! for the 80s movie reference...)

It's a PicoRV32 core + a simple 'retro' style video display processor (sprites, character generator, and 640x480 8 bit palette indexed bitmap graphics) that outputs on HDMI/DVI, plus 512KB of SRAM that runs on the CMod A35t board (Artix 7 35t FPGA + SRAM on DIP friendly package), which I intended on making a simple daughterboard for (to hook up PS/2 keyboard & mouse, add some extra RAM etc.)

The "OS" was to be mid-80s style -- boot to a REPL, either a BASIC or something like Lua, with simple DOS commands and an assembly language monitor.

I got pretty far but stalled out around Christmas when things got a bit busy personally for me, and I ran into the complications of getting the QSPI flash chip interfaced for storing programs.

I might pick this project back up again. I think it has potential.

BTW I don't actually think RISC-V assembly is all that great for beginners. It's a bit awkward to write directly. For example, to set a 32-bit register with an immediate value requires setting the upper 20 bits followed by the lower 12. Similar with PC jumps, etc.

In general RISC architecture assembly language is meant to be written by C compilers, not humans.

I actually think beginners might be better off with a CISC instruction set (like the 68k or similar).

EDIT: Thinking more about this, out of all the architectures that GCC currently supports, 68k seems to be the most "retro" and easiest/most enjoyable to write by hand.


Any project that will only be programmed in BASIC, C or something will make the processor it uses irrelevant. Only if there is some assembly will the processor matter.

One fun pseudo-retro project would be an incremental BASIC compiler which allows simple inline assembly. That is: any given line can be either a BASIC statement or an assembly instruction. The "incremental" part would be that every time a new line is entered the program is patched to include it. The program would be stored in machine language with two helper tables: line number to address mapping and variable name to address mapping. When you LIST it would decompile each line as it goes to the screen (easy to do since the compiler wouldn't have any optimizations). BASIC already has to include a garbage collector to deal with strings so this would not add too much complexity.

I agree that the 68000 is nicer to program in assembly than the RISC-V. I started a simple RISC (only a short presentation so far) with the goal of having nice assembly code: https://github.com/jeceljr/baby42


> It's a bit awkward to write directly. For example, to set a 32-bit register with an immediate value requires setting the upper 20 bits followed by the lower 12. Similar with PC jumps, etc.

Yes, IIRC the standard description of the RISC-V ISA includes assembly macro-instructions that can be programmatically expanded into sequences for things like those. Similar to how "mov" is actually implemented as a special case of "add immediate".


Oh for sure, that's great for writing, but when disasembling or looking at the asm listing for a C program you don't get that. Which happens a lot while working on a low level machine like this, especially when building it :-)


Why not just boot up the vice emulator and give them a true c64 experience? The CM is a neat project but if you're going for retro seems the worst of both worlds: modern, under-utilized hardware with artificial limitations. To me the later is the goal to force creativity; the hardware in this case seems superfluous.


Because previously we've spent a bit of time using an arduino to do something, and he enjoyed learning to solder and connect LEDs up. So I think that the experience of building the computer will have him more invested in it.


If you want a modern BASIC experience, Risc OS Pico on a RasPi Zero is a very good one.

1GB flat memory space, a blindingly-fast 32-bit structured BASIC with local variables, named procedures, IF...THEN...ELSE and DO loops and so on, and it supports inline ARM assembly. You can enter ARM assembly language directly into your BASIC listing in the same editor, and it will be assembled and run when you type RUN.

On a $5 computer.


The main pusher behind Commander X16 talked a bit about this alternative. It does feel like an 8-bit machine but IMO is closer to an emulator than 8-bit hardware. It's super overpowered compared to what it represents with the most intriguing aspect being it runs reegular old basic faster than a C64 runs machine code. Some of the creations are pretty amazing, but mostly because of today's hardware. It's also been pretty difficult to get a maximite (though this might clear up)



This review by C-trix is also very cool:

https://www.youtube.com/watch?v=lzrX72aB7zg


He reviewed the other computers in the Maximite series in the past. He considered the Maximites as possible candidates for what he was looking for in a "modern" retro style computer, but decided to pass on them as they weren't quite what he wanted.

Very interesting machines nevertheless, and fun to play with for retro fans.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: