We have closed the loop.

The launcher can now assemble tal files on the fly, you can use Left to write programs, Nasu to make graphics, Dexe to include them into your projects.

That means you can have a complete workstation on a NDS, GBA, Playdate, etc..

Thanks to everyone who helped to put this together.

@cblgh I did all the easy bits, everything else came from other people.

@neauoire yeah, still though, it had to be said

more seriously: it's been really cool to see this come together, and follow how it's been pulling in people from all kinds of corners :tealheart:

@cblgh it has been endless fun to mess with that stuff, uxn is turning 1 year old in about 2 weeks 🥳

@neauoire @cblgh i've been here almost a year! and what a year its been

@eris @cblgh it was amazing to share it with you, I'm glad we met each other :)

@neauoire gba might need some more work due to not really having a way to store stuff outside save files afaik (please do prove me wrong if i am). but for everything else, loop closed.

@lyncia ah yes, you're right, and I think the .File device is slightly behind specs, we need to copy the latest changes over.

@celeste It's a little vm, I have a couple of notes on it here:

Lemme know if you have any questions.

@neauoire is it like a more versatile pico-8 or am i just missing the point
@neauoire I have an incredible sudden want to create a high level language that is transpiled into Uxn assembly

time to tinker

@celeste you should :D If you wanna get started with uxn, have a look at @sejo's excellent tutorial

@neauoire im gonna tinker with it on my DSi since ive got that collectin dust lmao

@celeste uxn was designed to recycle old devices, there's no better home for it than something that withers in a drawer somewhere.

tangential question (hardware resurrection) 

@neauoire question:

to get this working on gba, would need something like... a place to start?

(have been lurking on uxn / Merveilles from my original account @eryn, and want to offer my partner their beloved gameboy advance with this beautiful workspace for them to try out the graphics stuffs)

(superclueless to actually get going on the hardware in our beloved unused tech drawer with this wild wizardry you've wrought here.)

(absolutely spectacular curation and development of this, truly, this is a beautiful and inspiring domain you've cultivated into existence...)

(...and also, is there an "absolute-zero-to-running" guide for this somewhere? it feels like i need a level for mere mortals when understanding y'all Merveilliens' tech... ^_% )

tangential question (hardware resurrection) 

@jakimfett @eryn we should ask @bd

tangential question (hardware resurrection) 

@neauoire @jakimfett @eryn Hi! I don't own an everdrive, but seems to be a good place to start indeed. Effectively you put an sd card on it with the gba roms you want and it should work. For now the uxngba bundles each uxn rom with the virtual machine individually. To compile a rom, given that you have the dev tools you would do: `make run ROM_SRC=path_to_uxn_rom.rom`. This will generate a .gba file that you can put on the everdrive.

tangential question (hardware resurrection) 

@neauoire @jakimfett @eryn feel free to check the readme: and post here or DM me if you need some help

tangential question (hardware resurrection) 

@bd @neauoire @eryn thank you so much, I will ping y'all when I run into trouble...or success!

This is an amazing conglomeration of awesome with a side helping of neat & necessary...every time I can make a device return to usage after being abandoned to the feels really good.

Thank you for loving that, too!

@celeste pico-8 is a fantasy console, it's a program made to look like a an old console.

Uxn is a virtual machine, so it runs everything through a little virtual cpu with 32 instructions. Porting uxn for example is only a matter of porting the emulator, porting pico-8 means porting a lua compiler.

I obviously understand the difference between PICO-8 and Uxn (particularly in intent) but porting a Lua interpreter is not significantly harder than porting Uxn, it's pure ANSI C and is meant to be ultra-portable just like Uxn. It'd be the rest of the large internals of PICO-8 that'd be difficult to port (especially since it's proprietary and impossible for anyone to port themselves :P)


@nytpu @celeste Absolutely, I was sort of trying to make it seem as simple as I could, I didn't want to dunk on pico-8. Obviously, the fact that it's closed source is a non-starter for portability.

@neauoire everyone should just stop a moment to wonder how incredible this is

@neauoire So, this is where the positive feedback loop starts, allowing ascension to the nth plane of existence through sheer machine wizardry, I guess.

Jokes aside, that is really cool to see.

Would it somehow be possible to swap the loaded launcher for an edited version too, as a kind of in-place hat trick?

@manifoldslug of course, the emulators will load anything and everything called launcher.rom, make your own! customize it, use something else!

@neauoire oh, let me rephrase the question, then, I want to ask about even wider self-modification

if someone wants to modify the launcher.rom -without- restarting the external emulator with a different launcher.rom, could the launcher be written in a way that would allow it to modify its own source to be replaced by the edited launcher.rom (while still in emulation), and transfer execution to the modified launcher.rom?

@manifoldslug of course, that already works :) Edit the launcher.tal code, assemble it, if you didn't make a mistake, you'll see the changes next time you press f4.

@neauoire damn, I did not expect that, I'm not sure how much cooler this can get (although I hope it will!)

I'm still waiting for an idea to pop into my skull that only makes sense in uxn's environment (come to think of it, has anyone tried to implement a secure way of communication between machines, or is that seen as less-important to the ethos?)

@manifoldslug people have been thinking about it, nobody did any progress in that direction yet.

@neauoire this is really cool to see! Is it expected that the binaries, tals, and roms all live in the same directory? Or does it support some kind of folder hierarchy?

@nleigh it.. well, I should probably implement some sort of location handler so I could navigate in and out of folders, but I haven't gotten around it to it yet.

Ideally someone will implement a mini OS(something like DOS) on Uxn someday.

@lunch Not yet, is that something you're considering? @seaandsailor has just started thinking about implementing a cross-compiler:

@neauoire no I don't know enough about 6502 to actually be able to do it but that'd be *really* cool

@lunch @neauoire Get an Atari 800XL, the best 6502 computer ever (just because that's the one I have)

@neauoire Ooooh...

Now I kinda want to play with this again.

Last time I tried, I was trying to make a minimal assembly file that would do something simple, I think writing something as output or messing with the screen, because I wanted to understand what was *actually* going on instead of just blindly relying on the boilerplate. But I couldn't get it to work; I was confused as to why and in the end, I gave up before getting deep enough to get past that.

The uxn thing has also inspired a few idle daydreams around possible OSes or OS-like systems which I've also, predictably, never followed up on. Admittedly with kinda different architecture/goals though.

@autumnal next time, if you hit a strange issue, just let me know, I'll be happy to help you figure it out :)

@neauoire wow! complete uxn ide!

before that i was thinking about assembling one rom, that assembles another rom, that can be edited to assemble the third rom, the third one being target rom you wanna develop. silly.

but now it's like a (almost0 self-hosting thing, that's great!

@neauoire Whao, amazing - looking forward to see this on all kinds of old hardware!

Awesome! ♥ Is it possible to get the files we make off of the NDS?

@Sandra of course, they just end up where you've put the rom :) You can use it as a little dev station

Sign in to participate in the conversation

Revel in the marvels of the universe. We are a collective of forward-thinking individuals who strive to better ourselves and our surroundings through constant creation. We express ourselves through music, art, games, and writing. We also put great value in play. A warm welcome to any like-minded people who feel these ideals resonate with them.