My LRNX remix project


moechofe 2023-07-07 13:10

After @Timo releasing the entire iOS source code, I decide to remix it and create my own App that reflect my usage of LRNX.

Here is a small step, showing a fullscreen program that use a bigger BG than the original version:


moechofe 2023-07-07 18:36

I will share my ideas and progress here.

First I needed to add more BG cell to fill the entire screen or a phone from 160x128 to 216x384 pixels. It's a portrait 9:18 resolution.

For that I start to increase the overall memory allocated by the virtual machine. I ended up increasing the BG capabilities. And for now it support 4 BG of 64x64 cells. Not sure if I'll keep it.

Here is a demo of 4 scrolling BG:

moechofe 2023-07-07 18:41

I was not convinced by the original 64 colors. A bunch of them are actually to close to each other, makes them quite useless IMHO.

I implemented a new one:

I will not makes changes to the numbers of charas, the number of colors by charas and the number of palettes as I think they are very good constraints and well designed.

Timo 2023-07-07 21:56

Ah ok, I thought you wanted to change just the “IDE”, but you want your own runtime specifications.
It will break compatibility, so we cannot run your programs here anymore :/

was8bit 2023-07-08 06:08


Your skills are most impressive... may I give you a challanges ;)

Try taking LRNX as is, and then add these commands...

*note* these commands effect char memory, not background memory.. and they would simply reference CHAR# 0 thru 63 and NOT actual memory locations, and data transfer size would automatically be calulated and handled by the command

1) CHAR COPY, CHAR PASTE that copies/pastes and character to any character

2) BLOCK COPY, BLOCK PASTE that copies/pastes a definable block of pixels from/to any character

.... all of these would have 2 modes... full copy (blank overwrites) and partial (blank does not overwrite, original pixels for blanks points remain

.... and finally, the last command challenges...

X,Y coordinates would be sprite styled coordinates...

=POINT(x,y,b) would return the pixel color of the involved character that happens to be displayed on the background b

PLOT(x,y,b) would set a single pixel in the involved character that happens to be displayed on the background b

was8bit 2023-07-08 06:13

@moechofe... one last last challenge..

The ability to assign a sprite to each of the UP/DOWN/LEFT/RIGHT/A/B buttons ;)

Any size, or, figure out how to be compatible with the built in change size option...

moechofe 2023-07-08 07:37


Unfortunately I cannot manage to obtained the things I imagined. I first try to keep the original BG of 16x20 cells and add extended BG of 27x48 to cover the entire 9:16 screen.

I manage to display the originals BG centered inside the extended ones and it was looking good, but I needed to also clip the raster, the sprites and the txtLib things. And I run into an issue:
- I can keep the compatibility but prevent me to use raster and txtLib into the extended BG.
- Duplicate everything to makes it works with the extended BG. (Lot of works and will increase complexity and add confusion)
- Add a switch compatibility/extended using the SYSTEM command but I still need an entire new machine with a different memory mapping.
As long I'm the only one using my own remix I can make changes that I'm only one to understand. 😛

Good things that I already worked on my own Chara editor. It will help me on that project.

moechofe 2023-07-08 07:53


Thank you for you ideas, but why limiting to Chara 0..63?

- CHAR COPY, CHAR PASTE: to do that I need a memory location for storing the pixels color. Why not simply CHARA COPY a TO b?

- BLOCK COPY, BLOCK PASTE: weird, copying a rectangle of Chara makes sense if you keep the original Chara alignment (16x16 Chara in the editor). But copying the pixels? It's not easy to do using BASIC already because of how pixels are packed together. And I don't want to cheat to much because I can modify the LRNX engine.

- I like the POINT and PLOT stuff, with a probably higher CPU cost, I'll see.

moechofe 2023-07-08 08:04

Additionally I thinked to add instructions that return the visible pixels.
Because I badly wanted a fullscreen display that can adapt to any iPhone/iPad screens, the rendered pixels are not always visible. On iPad, the display is cropped on top and bottom, and for long screen like iPhoneXS, the display is cropped on the left and right side.
So I need something to return those values.
Same way to return the pixels that are in the safe zone of the touch screen, avoiding notch and the ... Home button ? I don't know how to call it.

moechofe 2023-07-08 08:07

I don't want virtual controllers, I don't like them on a phone.
I may provide something for a virtual joystick. But It's very doable using only BASIC.

Timo 2023-07-08 11:15

The problem with custom gamepad controls is, that they will scale with the screen size. They might be too small on iPhone or too big on iPad.

was8bit 2023-07-08 11:16

Very cool thoughts :)

For partial character copying I was primarily thinking about breaking an 8x8 character into 4 blocks of 4x4.... not immediately sure of a useful application, but it would effectively would create image blocks 1/4th the size graphically speaking.. maybe just code that breaks the 8x8 block into 4x4 blocks ;)

was8bit 2023-07-08 13:57


Ah.... makes sense... but one could create small and large versions, that the adjustable option could pull up either one size or the other... or perhaps even that wouldnt work ...

was8bit 2023-07-08 13:59

... honestly i believe that the current form of LowresNX is marry poppins "practically perfect in every way" .... ;)

moechofe 2023-07-11 21:05 (Edited)

I'm now able to get the display resolution of the device converted to LRNX pixels and also get the safe zone. It will allow me to avoid placing UI element that cannot be touhed:

moechofe 2023-07-12 09:13

I can finally show you something usefull:

was8bit 2023-07-12 11:06

Cool :)

moechofe 2023-07-14 20:50

Things getting somewhere. Here's a WIP gfx editor for my remix. It can adapt to iPad and iPhone ratio:

Also I discovers that I started using an hold version of the LRNX Coder App. Oh well, it's seems working for now.

More and more stuff are working, I'm happy with the progress but incoming vacations will slow me down a lot.

I'm also preparing a new feature.

moechofe 2023-07-18 19:59

Some progress on a COMPATibility mode that allow me to access origin GfxEditor and SoundComposer tool:


Timo 2023-07-19 16:11

That sounds complex… does it have the original memory map?
I guess with the bigger BGs you had to change it, right?

moechofe 2023-07-19 19:20 (Edited)

I already change it, but most of the mapping aren't.

$00000..$08000   32KIBI BGS:   MORE AND BIGGER
$08000..$09000    4KIBI CHAR:  SAME
$09000..$0E000   20KIBI RAM:   SAME
$0E000..$0F800    6KIBI SAVE:  BIGGER
$0F800..$0FB00      768
$0FB00..$0FF00    1KIBI SPR:   170 SPRITES
$0FF00..$0FF20       32 COLOR: SAME
$0FF20..                VIDEO: SAME
$0FF40..                AUDIO: SAME
$0FF70..                IO:    TOUCH USE FLOAT
$10000..$20000  64KIBI  ROM:

There is not a lot of places where it's require to change it in the code. The issues will be the user's program.

The compatibility mode is not a objective for me. It just allow me to use the editors until mines are done, and to test a bunch of LRNX features at the same times.

moechofe 2023-07-26 12:23

Demo of the palette selector for my custom GFX Designer:

moechofe 2023-08-14 10:23

Demo of a new EASE function

moechofe 2023-09-01 08:23

Example of a WIP game using my personal extended version of lowresnx

moechofe 2023-09-28 12:28

I am still working on this, and my objective get bigger. -_-

I've tested an almost full BG editor: https://www.youtube.com/shorts/Jar3cmB8PGo

I've regroup all my work into one repo: https://github.com/moechofe/LowResRMX

And I will probably continue to give progress report on the "Fantasy Consoles 2.0" discord server from now.

was8bit 2023-09-28 15:54

Thanks for the updates :)

Log in to reply.