Sylveon 2026-03-18 13:01
This is an actual stimulation of a Neuron in a 16-bit fantasy console!
In this demo program, you can press A for a good response and B to punish it :3
It is not dome yet an still is kinda messy:
' FIRST EVER ACTUAL AI IN LOWRES NX
' DONE BY SYLVEON IN MAR 17, 2026
' FIRST EVER TRAINED NEURON WAS ON 10:12PM WITH GOOD OUTPUT 1.63
' TOOK 2 PUNISHMENTS TO START CHANGING ITS VALUE TO 1.82
RANDOMIZE TIMER
DIM GLOBAL OUT(1500)
DIM GLOBAL INPUT_AMOUNT(1500)
DIM GLOBAL INPUTS(1500,15)
DIM GLOBAL DOPAMINE(1500,15)
DIM GLOBAL TRAIN(1500)
DIM GLOBAL BIG_LIST_INPUT(15)
DIM GLOBAL BIG_LIST_PRCC(15)
DIM GLOBAL BIG_LIST_OUTPUT(15)
DIM GLOBAL MAX16I(15)
GLOBAL MAX_16_O
GLOBAL DECIMAL_RND
CALL NEW_HANDLER
' ====== A MAIN DEMO LOOP ======
RESTORE EXAMPLE_DATA
CALL LOAD_MODEL
INPUT_AMOUNT(0)=1
INPUTS(0,0)=255
INPUTS(0,1)=0
GAMEPAD 1
DO
TEXT 0,0,"INPUT A: 255"
TEXT 0,1,"INPUT B: 0"
TEXT 0,3,"OUTPUT: "+STR$(OUT(0))
TEXT 0,5,"DOPA A: "+STR$(DOPAMINE(0,0))
TEXT 0,6,"DOPA B: "+STR$(DOPAMINE(0,1))
TEXT 0,14,"A=GOOD"
TEXT 0,15,"B=BAD"
IF BUTTON TAP(0,0) THEN
TRAIN(0)=1
CALL UPDATE_NEURON(0)
END IF
IF BUTTON TAP(0,1) THEN
TRAIN(0)=-1
CALL UPDATE_NEURON(0)
END IF
WAIT VBL
LOOP
' ==============================
' UPDATES A NEURON
SUB UPDATE_NEURON(ID)
FOR I=0 TO 15
MAX16I(I)=0
NEXT I
FOR I=0 TO 15
BIG_LIST_INPUT(I)=0
NEXT I
FOR I=0 TO INPUT_AMOUNT(ID)
BIG_LIST_INPUT(I)=DOPAMINE(ID,I)
NEXT I
CALL MAKE_BIG_LIST
IF TRAIN(ID)=1 THEN
IF (DOPAMINE(ID,BIG_LIST_OUTPUT(0))+0.50)<=1 THEN DOPAMINE(ID,BIG_LIST_OUTPUT(0))=DOPAMINE(ID,BIG_LIST_OUTPUT(0))+0.50
IF (DOPAMINE(ID,BIG_LIST_OUTPUT(0))+0.50)>1 THEN DOPAMINE(ID,BIG_LIST_OUTPUT(0))=1
TRAIN(ID)=0
ELSE IF TRAIN(ID)=-1 THEN
IF (DOPAMINE(ID,BIG_LIST_OUTPUT(0))+0.50)>0 THEN DOPAMINE(ID,BIG_LIST_OUTPUT(0))=DOPAMINE(ID,BIG_LIST_OUTPUT(0))-0.50
IF (DOPAMINE(ID,BIG_LIST_OUTPUT(0))+0.50)<=0 THEN DOPAMINE(ID,BIG_LIST_OUTPUT(0))=0
TRAIN(ID)=0
END IF
FOR I=0 TO INPUT_AMOUNT(ID)
BIG_LIST_INPUT(I)=DOPAMINE(ID,I)
NEXT I
CALL MAKE_BIG_LIST
FOR I=0 TO INPUT_AMOUNT(ID)
MAX16I(I)=DOPAMINE(ID,BIG_LIST_OUTPUT(I))
NEXT I
CALL MAX16
MAX_OUT=MAX_16_O
IF MAX_OUT<>0 THEN
OUT0=DOPAMINE(ID,0)/MAX_OUT
OUT1=DOPAMINE(ID,1)/MAX_OUT
OUT2=DOPAMINE(ID,2)/MAX_OUT
OUT3=DOPAMINE(ID,3)/MAX_OUT
OUT4=DOPAMINE(ID,4)/MAX_OUT
OUT5=DOPAMINE(ID,5)/MAX_OUT
OUT6=DOPAMINE(ID,6)/MAX_OUT
OUT7=DOPAMINE(ID,7)/MAX_OUT
OUT8=DOPAMINE(ID,8)/MAX_OUT
OUT9=DOPAMINE(ID,9)/MAX_OUT
OUT10=DOPAMINE(ID,10)/MAX_OUT
OUT11=DOPAMINE(ID,11)/MAX_OUT
OUT12=DOPAMINE(ID,12)/MAX_OUT
OUT13=DOPAMINE(ID,13)/MAX_OUT
OUT14=DOPAMINE(ID,14)/MAX_OUT
OUT15=DOPAMINE(ID,15)/MAX_OUT
ELSE
OUT0=0
OUT1=0
OUT2=0
OUT3=0
OUT4=0
OUT5=0
OUT6=0
OUT7=0
OUT8=0
OUT9=0
OUT10=0
OUT11=0
OUT12=0
OUT13=0
OUT14=0
OUT15=0
END IF
FOR I=0 TO 15
MAX16I(I)=0
NEXT I
MAX16I(0)=OUT0
MAX16I(1)=OUT1
MAX16I(2)=OUT2
MAX16I(3)=OUT3
MAX16I(4)=OUT4
MAX16I(5)=OUT5
MAX16I(6)=OUT6
MAX16I(7)=OUT7
MAX16I(8)=OUT8
MAX16I(9)=OUT9
MAX16I(10)=OUT10
MAX16I(11)=OUT11
MAX16I(12)=OUT12
MAX16I(13)=OUT13
MAX16I(14)=OUT14
MAX16I(15)=OUT15
CALL MAX16
OUT(ID)=MAX_16_O
END SUB
' GENARATES A RANDOM DECIMAL VALUE FROM 0.00 TO 1.00
' USED IN FRESH NEURON CREATION
SUB GENARATE_DEC
DECIMAL_RND=0
RND_DG=RND(100)
DG$=STR$(RND_DG)
IF RND_DG<100 THEN DG$="0"+DG$
DEC_RND$=MID$(DG$,1,1)+"."+MID$(DG$,2,2)
DECIMAL_RND=VAL(DEC_RND$)
END SUB
' MAKES A LIST OF BIGGEST NUMBERS IN A LIST
' 0 IS MOST BIG
' 15 IS SMALLEST
SUB MAKE_BIG_LIST
CURR_DIGIT=0
FOR L=0 TO 15
BIG_LIST_PRCC(L)=BIG_LIST_INPUT(L)
NEXT L
CURR_DIGIT=0
FOR I=0 TO 15
FOR D=0 TO 15
MAX16I(D)=BIG_LIST_PRCC(D)
NEXT D
CALL MAX16
FOR S=0 TO 15
IF MAX_16_O=BIG_LIST_PRCC(S) AND MAX_16_O<>0 THEN
BIG_LIST_OUTPUT(CURR_DIGIT)=S
BIG_LIST_PRCC(S)=0
INC CURR_DIGIT
END IF
NEXT S
NEXT I
END SUB
' RETURNS THE MAXIMUM VALUE OUT OF 16 NUMBERS
SUB MAX16
A=MAX( MAX16I(15) , MAX16I(14) )
B=MAX( MAX16I(13) , MAX16I(12) )
C=MAX( MAX16I(11) , MAX16I(10) )
D=MAX( MAX16I(9) , MAX16I(8) )
E=MAX( MAX16I(7) , MAX16I(6) )
F=MAX( MAX16I(5) , MAX16I(4) )
G=MAX( MAX16I(3) , MAX16I(2) )
H=MAX( MAX16I(1) , MAX16I(0) )
A_0=MAX(A,B)
B_0=MAX(C,D)
C_0=MAX(E,F)
D_0=MAX(G,H)
A_1=MAX(A_0,B_0)
B_1=MAX(C_0,D_0)
MAX_16_O=MAX(A_1,B_1)
END SUB
' GENARATES STARTING GUESSES FOR NEURONS
' ONLY IF PROGRAM HAS RAN FOR THE FIRST TIME
SUB NEW_HANDLER
IF PEEK($E000)=0 THEN
TRACE "NEW DATA..."
FOR I=0 TO 1500
FOR DD=0 TO 15
TRACE "DOPA"+STR$(I)+"/1500"
CALL GENARATE_DEC
DOPAMINE(I,DD)=DECIMAL_RND
NEXT DD
NEXT I
POKE $E000,1
TRACE "FINISHED"
END IF
END SUB
' LOADS A MODEL FROM THE CURRENT LOADED DATA HEADER
' ALL THIS DOES IS LOAD THE DOPAMINE DATA
' FIRST NUMBER IS LENGH, AFTER THAT IS THE DATA
SUB LOAD_MODEL
READ LENGH
FOR I=0 TO LENGH
READ IA
INPUT_AMOUNT(I)=IA
FOR IN=0 TO IA
READ DOPAMINE(I,IN)
NEXT IN
NEXT I
END SUB
EXAMPLE_DATA:
DATA 0,1,0.67,0.98
C-script 2026-03-18 22:20
This is a amazing program how do plan on extending it?
Sylveon 2026-03-19 01:27
@C-script I’m planing to extend it by making future versions more compact (like removing unused functions) and it’s tested working because I made a program that tells in a drawn image has a Circle or not no matter what.
Raichu 2026-03-24 22:54
force it to do my math homework
C-script 2026-03-24 23:05
@raichu maybe it can do my taxes
Raichu 2026-03-24 23:06
@C-script and maybe it can help me solve my sudoku puzzles
Raichu 2026-03-24 23:06
@C-script and maybe it can help me solve my sudoku puzzles
C-script 2026-03-25 01:13
@raichu maybe it can play Doom
Raichu 2026-03-25 03:01
@C-script and maybe it can play chess
moechofe 2026-03-25 16:14
And maybe it can generate videos of cats playing musical instruments at night to replace Sora.
C-script 2026-03-25 17:52
Maybe it can make spam calls and steal everything I have, unfortunately the IRS already did that.
moechofe 2026-03-25 18:11
Maybe it can control real humanoid deploy in Ukraine, but this thread is going too far.
Raichu 2026-03-25 20:16
maybe it can control how long this thread is..
C-script 2026-03-25 20:26
Maybe it can work in sweat shops and steal my job. For the greater good.