<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://f256wiki.wildbitscomputing.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=1BitFeverDreams</id>
	<title>Foenix F256 / Wildbits/K2 Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://f256wiki.wildbitscomputing.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=1BitFeverDreams"/>
	<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Special:Contributions/1BitFeverDreams"/>
	<updated>2026-04-16T15:55:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=C_Development&amp;diff=38524</id>
		<title>C Development</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=C_Development&amp;diff=38524"/>
		<updated>2026-03-21T16:31:18Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Getting set up on Windows 10/11 (-Mu0n) */ better compilation line at the very end&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;C Compilers&#039;&#039;&#039; ==&lt;br /&gt;
* [[cc65]]&lt;br /&gt;
* [https://www.calypsi.cc/ Calypsi]&lt;br /&gt;
* [[llvm-mos]]&lt;br /&gt;
* oscar64&lt;br /&gt;
&lt;br /&gt;
=== LLVM-MOS ===&lt;br /&gt;
This fork of llvm-mos was adapted for F256/Wildbits usage by user sduensing from Kangaroo Punch Studios and [https://kangaroopunch.com/view/ShowSoftware?id=13 can be found here]. The installation instructions are simple and work for both Windows and Linux. It mostly uses a one-stop-shop f256lib.h file containing macros and functions leveraging some devices (not all yet) and the MicroKernel.&lt;br /&gt;
&lt;br /&gt;
The default linking configuration will have your code start at 0x300, a 8 kb stack/trampoline from 0xA000 to 0xBFFF that is used to bring in higher memory content visible into that slice of the first 64k of the CPU. The slice 0xC000 to 0xDFFF is used by IO as usual and 0xE000 to 0xFFFF is used by the MicroKernel as usual. To change any of this, you can bring a modified copy of link.ld into your /projectfolder/ and it will supersede this default mapping.&amp;lt;blockquote&amp;gt;&lt;br /&gt;
==== List of &amp;quot;Gotchas&amp;quot; for llvm-mos ====&lt;br /&gt;
1) When trying to use the EMBED directive in order to put data at specific memory locations, keep in mind that you CAN&#039;T comment those lines out with &amp;lt;code&amp;gt;/*&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;*/&amp;lt;/code&amp;gt;, the compiler will try to follow them whether they&#039;re in them or not. The only way to comment them is to use &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2) When trying to use the EMBED directive, you may want to put your assets in a subfolder of your project. As in, assuming your source files are in ./src/ (where &#039;.&#039; is the root of your project) and your assets are in ./assets/, then you WILL need to refer to your asset files like so: &amp;lt;code&amp;gt;EMBED(myassetname, &amp;quot;../assets/myassetfile.bin&amp;quot;, 0x10000);&amp;lt;/code&amp;gt;. Note the weird ../ folder backtracking that has to be used. No other combination worked for me (-Mu0n)&lt;br /&gt;
&lt;br /&gt;
3) In the f256dev/ folder, the f256build.bat file contains all you need to compile and link your project. In the &amp;quot;call mos-f256-clang.bat&amp;quot; line, one important switch is the optimization level you let the compiler use. Experiment with -O1 (no optimization), -O2 (some) and -O3 (most). Some operations and repetitions work with some and fail with others. One prominent example of where it failed was a repetitive fileRead operation that read and parsed little chunks of data from a file, byte by byte and while it compiled and linked, it failed during execution. By reducing -O3 to -O2, it all worked again.&lt;br /&gt;
&lt;br /&gt;
4) One linking error kept giving me &amp;quot;&amp;lt;code&amp;gt;ld.lld: error: ld-temp.o &amp;lt;inline asm&amp;gt;:2:1: operand must be a 16-bit address sta (mos8(.LpickAudioFile_zp_stk+4)&amp;lt;/code&amp;gt;&amp;quot; despite not having written any inline assembly in my project. You can skirt around the issue for the problematic function by adding a compiler attribute: &amp;lt;code&amp;gt;__attribute__((optnone))&amp;lt;/code&amp;gt; right before your function definition.&lt;br /&gt;
&lt;br /&gt;
5) When your code nears a size of 0x9400 and above, you may get in trouble in terms of code not being fully loaded into RAM while executing. Either deliberately put some code into far memory and devise a scheme with the MMU to swap that code in and out of reach for the CPU, or you can carve yourself a bit more space by editing f256dev/llvm-mos/mos-platform/f256/lib/link.ld and change:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/* fake C Stack */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PROVIDE(__stack = 0xA000);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;to&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/* fake C Stack */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PROVIDE(__stack = 0xC000);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to get yourself an extra 8k of code space before it collides with the stack&lt;br /&gt;
&lt;br /&gt;
6) The compiler will often complain about a missing closing curly bracket &#039;}&#039; at the end of your source files. Just add the one it requires at the very end even though it&#039;s an extra one, or, finish your source file by putting your last function with this notation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void myLastFunction(uint8_t whatever) {&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//bunchacode&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;&lt;br /&gt;
==== jbaker8935&#039;s guide on creating trampolines for functions in higher memory: ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
what you can do is pick a function in one of your projects that isnt time critical and create a trampoline function for it using this pattern:&lt;br /&gt;
&lt;br /&gt;
void FAR8_video_init(void);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#pragma clang optimize off&lt;br /&gt;
__attribute__((noinline))&lt;br /&gt;
void video_init(void) {&lt;br /&gt;
    volatile unsigned char ___mmu = (unsigned char)*(volatile unsigned char *)0x000d;&lt;br /&gt;
    *(volatile unsigned char *)0x000d = 8;&lt;br /&gt;
    FAR8_video_init();&lt;br /&gt;
    *(volatile unsigned char *)0x000d = ___mmu;&lt;br /&gt;
}&lt;br /&gt;
#pragma clang optimize on&lt;br /&gt;
&lt;br /&gt;
__attribute__((noinline, section(&amp;quot;.block8&amp;quot;)))&lt;br /&gt;
void FAR8_video_init(void)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note: that FAR8_video_init is the renamed function that is being moved.  It&#039;s just a convention.&lt;br /&gt;
in your main you can call video_init as you do normally and the trampoline will take care of swapping the code into A000 in cpu memory.&lt;br /&gt;
For linking you need to create file f256.ld that sits in the project directory.   it is a copy of &amp;quot;${ROOT}/llvm-mos/mos-platform/f256/lib/link.ld&amp;quot; but has additional linker instructions to explain how to deal with block8.  à&lt;br /&gt;
Around line 100 or so you need to add instructions after the include output.ld statement.  like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 /* Overlay Segments and Binary Data */&lt;br /&gt;
  INCLUDE output.ld&lt;br /&gt;
&lt;br /&gt;
/* Hand Coded output.ld records */&lt;br /&gt;
  SHORT(8*0x2000)&lt;br /&gt;
  BYTE(8/8)&lt;br /&gt;
  SHORT(end_block8 - __block8_lma)&lt;br /&gt;
  BYTE(0x00)&lt;br /&gt;
  TRIM(block8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i&#039;m using f256build.sh and the normal &#039;everything in src&#039; structure.  Also I didnt fiddle with moving the default stack or swap page,  so this example trampoline is using A000   (writing to 0x000d).   Note that the mmu is left in edit mode, so the trampolines can just write to 000d with no disabling of interrupts.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Oscar64 ===&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Oscar64 is a C/C++ cross compiler running on a modern system (such as a Windows PC, Mac or Linux machine) and targets the classic 6502 family of processors. It is mainly focused on Commodore systems such as the C64, PET or VIC20. The compiler supports C99 and many C++ features up to variadic templates and lambda functions.&lt;br /&gt;
&lt;br /&gt;
The purpose of this compiler is to eliminate the need to write 6502 assembler code to achieve high code density and fast execution speed. It continues to improve with all the games, demos and tools written by it. It supports disk overlays and banked cartridges for larger projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oscar64 was adapted for the F256/WildBits by swdfrost and [https://github.com/sdwfrost/oscar64 here is a link its github page]. You will also need the adaptation of the f256lib (ported over from llvm-mos) [https://github.com/sdwfrost/f256lib-oscar64 from this github page] as well, which also includes many projects examples as well. &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Getting set up on Windows 10/11 (-Mu0n) ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Assumptions:&lt;br /&gt;
&lt;br /&gt;
* Windows&#039; WSL is installed (ie with Ubuntu)&lt;br /&gt;
* Python is installed inside windows&lt;br /&gt;
* make is installed inside WSL&lt;br /&gt;
* gcc is installed inside WSL (&#039;&#039;&#039;sudo apt install build-essential&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 Step 1) in Windows, make a base directory (let&#039;s call it &#039;&#039;&#039;BASEPATH&#039;&#039;&#039;) that will hold both:&lt;br /&gt;
 &lt;br /&gt;
 * the oscar64 project, but with the &#039;f256k-support&#039; branch rather than &#039;main&#039; branch &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/oscar64&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 * the f256lib-oscar64 project, &#039;main branch&#039; &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/f256lib-oscar64&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 (both from sdwfrost&#039;s GitHub account)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Step 2) from windows, open a cmd window, go to your intended base folder &lt;br /&gt;
 &lt;br /&gt;
 Step 3) type WSL &lt;br /&gt;
 &lt;br /&gt;
 Step 4) clone oscar64 with&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;git clone -b f256k-support &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/oscar64.git&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Step 5) clone f256lib-oscar64 side by side in the same base folder.&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;git clone -b main &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/f256lib-oscar64&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Both &#039;&#039;&#039;&#039;oscar64&#039;&#039;&#039;&amp;lt;nowiki/&amp;gt;&#039; and &#039;&#039;&#039;&#039;f256lib-oscar64&#039;&#039;&#039;&amp;lt;nowiki/&amp;gt;&#039; folders will be in the same location when this is done.&lt;br /&gt;
 &lt;br /&gt;
 Step 6) go into oscar64/&lt;br /&gt;
 &lt;br /&gt;
 Step 7) type:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;make -f make/makefile&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 (this assumes gcc being present in WSL, it will take a while!)&lt;br /&gt;
 &lt;br /&gt;
 Step 8) switch over to f256lib-oscar64/ and type:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;OSCAR64=../../oscar64/bin/oscar64 make all&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 (warning 1: at the time of writing this guide, the 2nd project, BachHero, triggers an error that halts the whole list. Simply remove that entry from /f256lib-oscar64/doodles/MakeFile to get the rest going) (warning 2: most projects will compile, but not run properly when run in the Wildbits environment since they expect extra library files that have not been ported over)&lt;br /&gt;
 &lt;br /&gt;
 Step 9) to compile a single project in general, make sure you use a path that points to the compiled oscar64 of step 7 like so: (assuming your project myproject is in BASEPATH/f256lib-oscar64/doodles/)&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;BASEPATH/oscar64/bin/oscar64 -tm=f256k -n -i=BASEPATH/f256lib-oscar64/f256lib BASEPATH/f256lib-oscar64/doodles/myproject/src/myproject.c -o=BASEPATH/f256lib-oscar64/doodles/myproject/myproject.pgz&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=C_Development&amp;diff=38523</id>
		<title>C Development</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=C_Development&amp;diff=38523"/>
		<updated>2026-03-21T14:41:28Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Getting set up on Windows 10/11 (-Mu0n) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;C Compilers&#039;&#039;&#039; ==&lt;br /&gt;
* [[cc65]]&lt;br /&gt;
* [https://www.calypsi.cc/ Calypsi]&lt;br /&gt;
* [[llvm-mos]]&lt;br /&gt;
* oscar64&lt;br /&gt;
&lt;br /&gt;
=== LLVM-MOS ===&lt;br /&gt;
This fork of llvm-mos was adapted for F256/Wildbits usage by user sduensing from Kangaroo Punch Studios and [https://kangaroopunch.com/view/ShowSoftware?id=13 can be found here]. The installation instructions are simple and work for both Windows and Linux. It mostly uses a one-stop-shop f256lib.h file containing macros and functions leveraging some devices (not all yet) and the MicroKernel.&lt;br /&gt;
&lt;br /&gt;
The default linking configuration will have your code start at 0x300, a 8 kb stack/trampoline from 0xA000 to 0xBFFF that is used to bring in higher memory content visible into that slice of the first 64k of the CPU. The slice 0xC000 to 0xDFFF is used by IO as usual and 0xE000 to 0xFFFF is used by the MicroKernel as usual. To change any of this, you can bring a modified copy of link.ld into your /projectfolder/ and it will supersede this default mapping.&amp;lt;blockquote&amp;gt;&lt;br /&gt;
==== List of &amp;quot;Gotchas&amp;quot; for llvm-mos ====&lt;br /&gt;
1) When trying to use the EMBED directive in order to put data at specific memory locations, keep in mind that you CAN&#039;T comment those lines out with &amp;lt;code&amp;gt;/*&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;*/&amp;lt;/code&amp;gt;, the compiler will try to follow them whether they&#039;re in them or not. The only way to comment them is to use &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2) When trying to use the EMBED directive, you may want to put your assets in a subfolder of your project. As in, assuming your source files are in ./src/ (where &#039;.&#039; is the root of your project) and your assets are in ./assets/, then you WILL need to refer to your asset files like so: &amp;lt;code&amp;gt;EMBED(myassetname, &amp;quot;../assets/myassetfile.bin&amp;quot;, 0x10000);&amp;lt;/code&amp;gt;. Note the weird ../ folder backtracking that has to be used. No other combination worked for me (-Mu0n)&lt;br /&gt;
&lt;br /&gt;
3) In the f256dev/ folder, the f256build.bat file contains all you need to compile and link your project. In the &amp;quot;call mos-f256-clang.bat&amp;quot; line, one important switch is the optimization level you let the compiler use. Experiment with -O1 (no optimization), -O2 (some) and -O3 (most). Some operations and repetitions work with some and fail with others. One prominent example of where it failed was a repetitive fileRead operation that read and parsed little chunks of data from a file, byte by byte and while it compiled and linked, it failed during execution. By reducing -O3 to -O2, it all worked again.&lt;br /&gt;
&lt;br /&gt;
4) One linking error kept giving me &amp;quot;&amp;lt;code&amp;gt;ld.lld: error: ld-temp.o &amp;lt;inline asm&amp;gt;:2:1: operand must be a 16-bit address sta (mos8(.LpickAudioFile_zp_stk+4)&amp;lt;/code&amp;gt;&amp;quot; despite not having written any inline assembly in my project. You can skirt around the issue for the problematic function by adding a compiler attribute: &amp;lt;code&amp;gt;__attribute__((optnone))&amp;lt;/code&amp;gt; right before your function definition.&lt;br /&gt;
&lt;br /&gt;
5) When your code nears a size of 0x9400 and above, you may get in trouble in terms of code not being fully loaded into RAM while executing. Either deliberately put some code into far memory and devise a scheme with the MMU to swap that code in and out of reach for the CPU, or you can carve yourself a bit more space by editing f256dev/llvm-mos/mos-platform/f256/lib/link.ld and change:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/* fake C Stack */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PROVIDE(__stack = 0xA000);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;to&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/* fake C Stack */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PROVIDE(__stack = 0xC000);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to get yourself an extra 8k of code space before it collides with the stack&lt;br /&gt;
&lt;br /&gt;
6) The compiler will often complain about a missing closing curly bracket &#039;}&#039; at the end of your source files. Just add the one it requires at the very end even though it&#039;s an extra one, or, finish your source file by putting your last function with this notation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void myLastFunction(uint8_t whatever) {&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//bunchacode&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;&lt;br /&gt;
==== jbaker8935&#039;s guide on creating trampolines for functions in higher memory: ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
what you can do is pick a function in one of your projects that isnt time critical and create a trampoline function for it using this pattern:&lt;br /&gt;
&lt;br /&gt;
void FAR8_video_init(void);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#pragma clang optimize off&lt;br /&gt;
__attribute__((noinline))&lt;br /&gt;
void video_init(void) {&lt;br /&gt;
    volatile unsigned char ___mmu = (unsigned char)*(volatile unsigned char *)0x000d;&lt;br /&gt;
    *(volatile unsigned char *)0x000d = 8;&lt;br /&gt;
    FAR8_video_init();&lt;br /&gt;
    *(volatile unsigned char *)0x000d = ___mmu;&lt;br /&gt;
}&lt;br /&gt;
#pragma clang optimize on&lt;br /&gt;
&lt;br /&gt;
__attribute__((noinline, section(&amp;quot;.block8&amp;quot;)))&lt;br /&gt;
void FAR8_video_init(void)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note: that FAR8_video_init is the renamed function that is being moved.  It&#039;s just a convention.&lt;br /&gt;
in your main you can call video_init as you do normally and the trampoline will take care of swapping the code into A000 in cpu memory.&lt;br /&gt;
For linking you need to create file f256.ld that sits in the project directory.   it is a copy of &amp;quot;${ROOT}/llvm-mos/mos-platform/f256/lib/link.ld&amp;quot; but has additional linker instructions to explain how to deal with block8.  à&lt;br /&gt;
Around line 100 or so you need to add instructions after the include output.ld statement.  like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 /* Overlay Segments and Binary Data */&lt;br /&gt;
  INCLUDE output.ld&lt;br /&gt;
&lt;br /&gt;
/* Hand Coded output.ld records */&lt;br /&gt;
  SHORT(8*0x2000)&lt;br /&gt;
  BYTE(8/8)&lt;br /&gt;
  SHORT(end_block8 - __block8_lma)&lt;br /&gt;
  BYTE(0x00)&lt;br /&gt;
  TRIM(block8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i&#039;m using f256build.sh and the normal &#039;everything in src&#039; structure.  Also I didnt fiddle with moving the default stack or swap page,  so this example trampoline is using A000   (writing to 0x000d).   Note that the mmu is left in edit mode, so the trampolines can just write to 000d with no disabling of interrupts.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Oscar64 ===&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Oscar64 is a C/C++ cross compiler running on a modern system (such as a Windows PC, Mac or Linux machine) and targets the classic 6502 family of processors. It is mainly focused on Commodore systems such as the C64, PET or VIC20. The compiler supports C99 and many C++ features up to variadic templates and lambda functions.&lt;br /&gt;
&lt;br /&gt;
The purpose of this compiler is to eliminate the need to write 6502 assembler code to achieve high code density and fast execution speed. It continues to improve with all the games, demos and tools written by it. It supports disk overlays and banked cartridges for larger projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oscar64 was adapted for the F256/WildBits by swdfrost and [https://github.com/sdwfrost/oscar64 here is a link its github page]. You will also need the adaptation of the f256lib (ported over from llvm-mos) [https://github.com/sdwfrost/f256lib-oscar64 from this github page] as well, which also includes many projects examples as well. &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Getting set up on Windows 10/11 (-Mu0n) ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Assumptions:&lt;br /&gt;
&lt;br /&gt;
* Windows&#039; WSL is installed (ie with Ubuntu)&lt;br /&gt;
* Python is installed inside windows&lt;br /&gt;
* make is installed inside WSL&lt;br /&gt;
* gcc is installed inside WSL (&#039;&#039;&#039;sudo apt install build-essential&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 Step 1) in Windows, make a base directory (let&#039;s call it &#039;&#039;&#039;BASEPATH&#039;&#039;&#039;) that will hold both:&lt;br /&gt;
 &lt;br /&gt;
 * the oscar64 project, but with the &#039;f256k-support&#039; branch rather than &#039;main&#039; branch &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/oscar64&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 * the f256lib-oscar64 project, &#039;main branch&#039; &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/f256lib-oscar64&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 (both from sdwfrost&#039;s GitHub account)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Step 2) from windows, open a cmd window, go to your intended base folder &lt;br /&gt;
 &lt;br /&gt;
 Step 3) type WSL &lt;br /&gt;
 &lt;br /&gt;
 Step 4) clone oscar64 with&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;git clone -b f256k-support &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/oscar64.git&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Step 5) clone f256lib-oscar64 side by side in the same base folder.&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;git clone -b main &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/f256lib-oscar64&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Both &#039;&#039;&#039;&#039;oscar64&#039;&#039;&#039;&amp;lt;nowiki/&amp;gt;&#039; and &#039;&#039;&#039;&#039;f256lib-oscar64&#039;&#039;&#039;&amp;lt;nowiki/&amp;gt;&#039; folders will be in the same location when this is done.&lt;br /&gt;
 &lt;br /&gt;
 Step 6) go into oscar64/&lt;br /&gt;
 &lt;br /&gt;
 Step 7) type:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;make -f make/makefile&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 (this assumes gcc being present in WSL, it will take a while!)&lt;br /&gt;
 &lt;br /&gt;
 Step 8) switch over to f256lib-oscar64/ and type:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;OSCAR64=../../oscar64/bin/oscar64 make all&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 (warning 1: at the time of writing this guide, the 2nd project, BachHero, triggers an error that halts the whole list. Simply remove that entry from /f256lib-oscar64/doodles/MakeFile to get the rest going) (warning 2: most projects will compile, but not run properly when run in the Wildbits environment since they expect extra library files that have not been ported over)&lt;br /&gt;
 &lt;br /&gt;
 Step 9) to compile a single project in general, make sure you use a path that points to the compiled oscar64 of step 7 like so: (assuming your project myproject is in BASEPATH/f256lib-oscar64/doodles/)&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;BASEPATH/oscar64/bin/oscar64 -tm=f256k -n -i=BASEPATH/f256lib-oscar64/f256lib BASEPATH/f256lib-oscar64/doodles/myproject/src/myproject.c&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=C_Development&amp;diff=38522</id>
		<title>C Development</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=C_Development&amp;diff=38522"/>
		<updated>2026-03-21T14:40:19Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Getting set up on Windows 10/11 (-Mu0n) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;C Compilers&#039;&#039;&#039; ==&lt;br /&gt;
* [[cc65]]&lt;br /&gt;
* [https://www.calypsi.cc/ Calypsi]&lt;br /&gt;
* [[llvm-mos]]&lt;br /&gt;
* oscar64&lt;br /&gt;
&lt;br /&gt;
=== LLVM-MOS ===&lt;br /&gt;
This fork of llvm-mos was adapted for F256/Wildbits usage by user sduensing from Kangaroo Punch Studios and [https://kangaroopunch.com/view/ShowSoftware?id=13 can be found here]. The installation instructions are simple and work for both Windows and Linux. It mostly uses a one-stop-shop f256lib.h file containing macros and functions leveraging some devices (not all yet) and the MicroKernel.&lt;br /&gt;
&lt;br /&gt;
The default linking configuration will have your code start at 0x300, a 8 kb stack/trampoline from 0xA000 to 0xBFFF that is used to bring in higher memory content visible into that slice of the first 64k of the CPU. The slice 0xC000 to 0xDFFF is used by IO as usual and 0xE000 to 0xFFFF is used by the MicroKernel as usual. To change any of this, you can bring a modified copy of link.ld into your /projectfolder/ and it will supersede this default mapping.&amp;lt;blockquote&amp;gt;&lt;br /&gt;
==== List of &amp;quot;Gotchas&amp;quot; for llvm-mos ====&lt;br /&gt;
1) When trying to use the EMBED directive in order to put data at specific memory locations, keep in mind that you CAN&#039;T comment those lines out with &amp;lt;code&amp;gt;/*&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;*/&amp;lt;/code&amp;gt;, the compiler will try to follow them whether they&#039;re in them or not. The only way to comment them is to use &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2) When trying to use the EMBED directive, you may want to put your assets in a subfolder of your project. As in, assuming your source files are in ./src/ (where &#039;.&#039; is the root of your project) and your assets are in ./assets/, then you WILL need to refer to your asset files like so: &amp;lt;code&amp;gt;EMBED(myassetname, &amp;quot;../assets/myassetfile.bin&amp;quot;, 0x10000);&amp;lt;/code&amp;gt;. Note the weird ../ folder backtracking that has to be used. No other combination worked for me (-Mu0n)&lt;br /&gt;
&lt;br /&gt;
3) In the f256dev/ folder, the f256build.bat file contains all you need to compile and link your project. In the &amp;quot;call mos-f256-clang.bat&amp;quot; line, one important switch is the optimization level you let the compiler use. Experiment with -O1 (no optimization), -O2 (some) and -O3 (most). Some operations and repetitions work with some and fail with others. One prominent example of where it failed was a repetitive fileRead operation that read and parsed little chunks of data from a file, byte by byte and while it compiled and linked, it failed during execution. By reducing -O3 to -O2, it all worked again.&lt;br /&gt;
&lt;br /&gt;
4) One linking error kept giving me &amp;quot;&amp;lt;code&amp;gt;ld.lld: error: ld-temp.o &amp;lt;inline asm&amp;gt;:2:1: operand must be a 16-bit address sta (mos8(.LpickAudioFile_zp_stk+4)&amp;lt;/code&amp;gt;&amp;quot; despite not having written any inline assembly in my project. You can skirt around the issue for the problematic function by adding a compiler attribute: &amp;lt;code&amp;gt;__attribute__((optnone))&amp;lt;/code&amp;gt; right before your function definition.&lt;br /&gt;
&lt;br /&gt;
5) When your code nears a size of 0x9400 and above, you may get in trouble in terms of code not being fully loaded into RAM while executing. Either deliberately put some code into far memory and devise a scheme with the MMU to swap that code in and out of reach for the CPU, or you can carve yourself a bit more space by editing f256dev/llvm-mos/mos-platform/f256/lib/link.ld and change:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/* fake C Stack */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PROVIDE(__stack = 0xA000);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;to&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/* fake C Stack */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PROVIDE(__stack = 0xC000);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to get yourself an extra 8k of code space before it collides with the stack&lt;br /&gt;
&lt;br /&gt;
6) The compiler will often complain about a missing closing curly bracket &#039;}&#039; at the end of your source files. Just add the one it requires at the very end even though it&#039;s an extra one, or, finish your source file by putting your last function with this notation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void myLastFunction(uint8_t whatever) {&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//bunchacode&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;&lt;br /&gt;
==== jbaker8935&#039;s guide on creating trampolines for functions in higher memory: ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
what you can do is pick a function in one of your projects that isnt time critical and create a trampoline function for it using this pattern:&lt;br /&gt;
&lt;br /&gt;
void FAR8_video_init(void);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#pragma clang optimize off&lt;br /&gt;
__attribute__((noinline))&lt;br /&gt;
void video_init(void) {&lt;br /&gt;
    volatile unsigned char ___mmu = (unsigned char)*(volatile unsigned char *)0x000d;&lt;br /&gt;
    *(volatile unsigned char *)0x000d = 8;&lt;br /&gt;
    FAR8_video_init();&lt;br /&gt;
    *(volatile unsigned char *)0x000d = ___mmu;&lt;br /&gt;
}&lt;br /&gt;
#pragma clang optimize on&lt;br /&gt;
&lt;br /&gt;
__attribute__((noinline, section(&amp;quot;.block8&amp;quot;)))&lt;br /&gt;
void FAR8_video_init(void)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note: that FAR8_video_init is the renamed function that is being moved.  It&#039;s just a convention.&lt;br /&gt;
in your main you can call video_init as you do normally and the trampoline will take care of swapping the code into A000 in cpu memory.&lt;br /&gt;
For linking you need to create file f256.ld that sits in the project directory.   it is a copy of &amp;quot;${ROOT}/llvm-mos/mos-platform/f256/lib/link.ld&amp;quot; but has additional linker instructions to explain how to deal with block8.  à&lt;br /&gt;
Around line 100 or so you need to add instructions after the include output.ld statement.  like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 /* Overlay Segments and Binary Data */&lt;br /&gt;
  INCLUDE output.ld&lt;br /&gt;
&lt;br /&gt;
/* Hand Coded output.ld records */&lt;br /&gt;
  SHORT(8*0x2000)&lt;br /&gt;
  BYTE(8/8)&lt;br /&gt;
  SHORT(end_block8 - __block8_lma)&lt;br /&gt;
  BYTE(0x00)&lt;br /&gt;
  TRIM(block8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i&#039;m using f256build.sh and the normal &#039;everything in src&#039; structure.  Also I didnt fiddle with moving the default stack or swap page,  so this example trampoline is using A000   (writing to 0x000d).   Note that the mmu is left in edit mode, so the trampolines can just write to 000d with no disabling of interrupts.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Oscar64 ===&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Oscar64 is a C/C++ cross compiler running on a modern system (such as a Windows PC, Mac or Linux machine) and targets the classic 6502 family of processors. It is mainly focused on Commodore systems such as the C64, PET or VIC20. The compiler supports C99 and many C++ features up to variadic templates and lambda functions.&lt;br /&gt;
&lt;br /&gt;
The purpose of this compiler is to eliminate the need to write 6502 assembler code to achieve high code density and fast execution speed. It continues to improve with all the games, demos and tools written by it. It supports disk overlays and banked cartridges for larger projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oscar64 was adapted for the F256/WildBits by swdfrost and [https://github.com/sdwfrost/oscar64 here is a link its github page]. You will also need the adaptation of the f256lib (ported over from llvm-mos) [https://github.com/sdwfrost/f256lib-oscar64 from this github page] as well, which also includes many projects examples as well. &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Getting set up on Windows 10/11 (-Mu0n) ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Assumptions:&lt;br /&gt;
&lt;br /&gt;
* Windows&#039; WSL is installed (ie with Ubuntu)&lt;br /&gt;
* Python is installed inside windows&lt;br /&gt;
* make is installed inside WSL&lt;br /&gt;
* gcc is installed inside WSL (&#039;&#039;&#039;sudo apt install build-essential&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 Step 1) in Windows, make a base directory (let&#039;s call it &#039;&#039;&#039;BASEPATH&#039;&#039;&#039;) that will hold both:&lt;br /&gt;
 &lt;br /&gt;
 * the oscar64 project, but with the &#039;f256k-support&#039; branch rather than &#039;main&#039; branch &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/oscar64&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 * the f256lib-oscar64 project, &#039;main branch&#039; &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/f256lib-oscar64&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 (both from sdwfrost&#039;s GitHub account)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Step 2) from windows, open a cmd window, go to your intended base folder Step 3) type WSL Step 4) clone oscar64 with&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;git clone -b f256k-support &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/oscar64.git&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Step 5) clone f256lib-oscar64 side by side in the same base folder.&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;git clone -b main &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/f256lib-oscar64&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Both &#039;&amp;lt;nowiki/&amp;gt;&#039;&#039;&#039;oscar64&#039;&#039;&#039;&amp;lt;nowiki/&amp;gt;&#039; and &#039;&#039;&#039;&#039;f256lib-oscar64&#039;&#039;&#039;&amp;lt;nowiki/&amp;gt;&#039; folders will be in the same location when this is done.&lt;br /&gt;
 &lt;br /&gt;
 Step 6) go into oscar64/&lt;br /&gt;
 &lt;br /&gt;
 Step 7) type:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;make -f make/makefile&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 (this assumes gcc being present in WSL, it will take a while!)&lt;br /&gt;
 &lt;br /&gt;
 Step 8) switch over to f256lib-oscar64/ and type:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;OSCAR64=../../oscar64/bin/oscar64 make all&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 (warning 1: at the time of writing this guide, the 2nd project, BachHero, triggers an error that halts the whole list. Simply remove that entry from /f256lib-oscar64/doodles/MakeFile to get the rest going) (warning 2: most projects will compile, but not run properly when run in the Wildbits environment since they expect extra library files that have not been ported over)&lt;br /&gt;
 &lt;br /&gt;
 Step 9) to compile a single project in general, make sure you use a path that points to the compiled oscar64 of step 7 like so: (assuming your project myproject is in BASEPATH/f256lib-oscar64/doodles/)&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;BASEPATH/oscar64/bin/oscar64 -tm=f256k -n -i=BASEPATH/f256lib-oscar64/f256lib BASEPATH/f256lib-oscar64/doodles/myproject/src/myproject.c&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=C_Development&amp;diff=38521</id>
		<title>C Development</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=C_Development&amp;diff=38521"/>
		<updated>2026-03-21T14:38:20Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* List of &amp;quot;Gotchas&amp;quot; for llvm-mos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;C Compilers&#039;&#039;&#039; ==&lt;br /&gt;
* [[cc65]]&lt;br /&gt;
* [https://www.calypsi.cc/ Calypsi]&lt;br /&gt;
* [[llvm-mos]]&lt;br /&gt;
* oscar64&lt;br /&gt;
&lt;br /&gt;
=== LLVM-MOS ===&lt;br /&gt;
This fork of llvm-mos was adapted for F256/Wildbits usage by user sduensing from Kangaroo Punch Studios and [https://kangaroopunch.com/view/ShowSoftware?id=13 can be found here]. The installation instructions are simple and work for both Windows and Linux. It mostly uses a one-stop-shop f256lib.h file containing macros and functions leveraging some devices (not all yet) and the MicroKernel.&lt;br /&gt;
&lt;br /&gt;
The default linking configuration will have your code start at 0x300, a 8 kb stack/trampoline from 0xA000 to 0xBFFF that is used to bring in higher memory content visible into that slice of the first 64k of the CPU. The slice 0xC000 to 0xDFFF is used by IO as usual and 0xE000 to 0xFFFF is used by the MicroKernel as usual. To change any of this, you can bring a modified copy of link.ld into your /projectfolder/ and it will supersede this default mapping.&amp;lt;blockquote&amp;gt;&lt;br /&gt;
==== List of &amp;quot;Gotchas&amp;quot; for llvm-mos ====&lt;br /&gt;
1) When trying to use the EMBED directive in order to put data at specific memory locations, keep in mind that you CAN&#039;T comment those lines out with &amp;lt;code&amp;gt;/*&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;*/&amp;lt;/code&amp;gt;, the compiler will try to follow them whether they&#039;re in them or not. The only way to comment them is to use &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2) When trying to use the EMBED directive, you may want to put your assets in a subfolder of your project. As in, assuming your source files are in ./src/ (where &#039;.&#039; is the root of your project) and your assets are in ./assets/, then you WILL need to refer to your asset files like so: &amp;lt;code&amp;gt;EMBED(myassetname, &amp;quot;../assets/myassetfile.bin&amp;quot;, 0x10000);&amp;lt;/code&amp;gt;. Note the weird ../ folder backtracking that has to be used. No other combination worked for me (-Mu0n)&lt;br /&gt;
&lt;br /&gt;
3) In the f256dev/ folder, the f256build.bat file contains all you need to compile and link your project. In the &amp;quot;call mos-f256-clang.bat&amp;quot; line, one important switch is the optimization level you let the compiler use. Experiment with -O1 (no optimization), -O2 (some) and -O3 (most). Some operations and repetitions work with some and fail with others. One prominent example of where it failed was a repetitive fileRead operation that read and parsed little chunks of data from a file, byte by byte and while it compiled and linked, it failed during execution. By reducing -O3 to -O2, it all worked again.&lt;br /&gt;
&lt;br /&gt;
4) One linking error kept giving me &amp;quot;&amp;lt;code&amp;gt;ld.lld: error: ld-temp.o &amp;lt;inline asm&amp;gt;:2:1: operand must be a 16-bit address sta (mos8(.LpickAudioFile_zp_stk+4)&amp;lt;/code&amp;gt;&amp;quot; despite not having written any inline assembly in my project. You can skirt around the issue for the problematic function by adding a compiler attribute: &amp;lt;code&amp;gt;__attribute__((optnone))&amp;lt;/code&amp;gt; right before your function definition.&lt;br /&gt;
&lt;br /&gt;
5) When your code nears a size of 0x9400 and above, you may get in trouble in terms of code not being fully loaded into RAM while executing. Either deliberately put some code into far memory and devise a scheme with the MMU to swap that code in and out of reach for the CPU, or you can carve yourself a bit more space by editing f256dev/llvm-mos/mos-platform/f256/lib/link.ld and change:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/* fake C Stack */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PROVIDE(__stack = 0xA000);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;to&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/* fake C Stack */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PROVIDE(__stack = 0xC000);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to get yourself an extra 8k of code space before it collides with the stack&lt;br /&gt;
&lt;br /&gt;
6) The compiler will often complain about a missing closing curly bracket &#039;}&#039; at the end of your source files. Just add the one it requires at the very end even though it&#039;s an extra one, or, finish your source file by putting your last function with this notation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void myLastFunction(uint8_t whatever) {&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//bunchacode&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;&lt;br /&gt;
==== jbaker8935&#039;s guide on creating trampolines for functions in higher memory: ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
what you can do is pick a function in one of your projects that isnt time critical and create a trampoline function for it using this pattern:&lt;br /&gt;
&lt;br /&gt;
void FAR8_video_init(void);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#pragma clang optimize off&lt;br /&gt;
__attribute__((noinline))&lt;br /&gt;
void video_init(void) {&lt;br /&gt;
    volatile unsigned char ___mmu = (unsigned char)*(volatile unsigned char *)0x000d;&lt;br /&gt;
    *(volatile unsigned char *)0x000d = 8;&lt;br /&gt;
    FAR8_video_init();&lt;br /&gt;
    *(volatile unsigned char *)0x000d = ___mmu;&lt;br /&gt;
}&lt;br /&gt;
#pragma clang optimize on&lt;br /&gt;
&lt;br /&gt;
__attribute__((noinline, section(&amp;quot;.block8&amp;quot;)))&lt;br /&gt;
void FAR8_video_init(void)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note: that FAR8_video_init is the renamed function that is being moved.  It&#039;s just a convention.&lt;br /&gt;
in your main you can call video_init as you do normally and the trampoline will take care of swapping the code into A000 in cpu memory.&lt;br /&gt;
For linking you need to create file f256.ld that sits in the project directory.   it is a copy of &amp;quot;${ROOT}/llvm-mos/mos-platform/f256/lib/link.ld&amp;quot; but has additional linker instructions to explain how to deal with block8.  à&lt;br /&gt;
Around line 100 or so you need to add instructions after the include output.ld statement.  like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 /* Overlay Segments and Binary Data */&lt;br /&gt;
  INCLUDE output.ld&lt;br /&gt;
&lt;br /&gt;
/* Hand Coded output.ld records */&lt;br /&gt;
  SHORT(8*0x2000)&lt;br /&gt;
  BYTE(8/8)&lt;br /&gt;
  SHORT(end_block8 - __block8_lma)&lt;br /&gt;
  BYTE(0x00)&lt;br /&gt;
  TRIM(block8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i&#039;m using f256build.sh and the normal &#039;everything in src&#039; structure.  Also I didnt fiddle with moving the default stack or swap page,  so this example trampoline is using A000   (writing to 0x000d).   Note that the mmu is left in edit mode, so the trampolines can just write to 000d with no disabling of interrupts.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Oscar64 ===&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Oscar64 is a C/C++ cross compiler running on a modern system (such as a Windows PC, Mac or Linux machine) and targets the classic 6502 family of processors. It is mainly focused on Commodore systems such as the C64, PET or VIC20. The compiler supports C99 and many C++ features up to variadic templates and lambda functions.&lt;br /&gt;
&lt;br /&gt;
The purpose of this compiler is to eliminate the need to write 6502 assembler code to achieve high code density and fast execution speed. It continues to improve with all the games, demos and tools written by it. It supports disk overlays and banked cartridges for larger projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oscar64 was adapted for the F256/WildBits by swdfrost and [https://github.com/sdwfrost/oscar64 here is a link its github page]. You will also need the adaptation of the f256lib (ported over from llvm-mos) [https://github.com/sdwfrost/f256lib-oscar64 from this github page] as well, which also includes many projects examples as well. &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Getting set up on Windows 10/11 (-Mu0n) ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Assumptions:&lt;br /&gt;
&lt;br /&gt;
* Windows&#039; WSL is installed (ie with Ubuntu)&lt;br /&gt;
* Python is installed inside windows&lt;br /&gt;
* make is installed inside WSL&lt;br /&gt;
* gcc is installed inside WSL (&#039;&#039;&#039;sudo apt install build-essential&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Step 1) in Windows, make a base directory (let&#039;s call it BASEPATH) that will hold both:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;nowiki/&amp;gt;* the oscar64 project, but with the &#039;f256k-support&#039; branch rather than &#039;main&#039; branch&lt;br /&gt;
&amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/oscar64&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;nowiki/&amp;gt;* the f256lib-oscar64 project, &#039;main branch&#039;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/f256lib-oscar64&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
(both from sdwfrost&#039;s GitHub account)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Step 2) from windows, open a cmd window, go to your intended base folder&lt;br /&gt;
Step 3) type WSL&lt;br /&gt;
Step 4) clone oscar64 with &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;git clone -b f256k-support &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/oscar64.git&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
Step 5) clone f256lib-oscar64 side by side in the same base folder. &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;git clone -b main &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/f256lib-oscar64&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
Both &#039;oscar64&#039; and &#039;f256lib-oscar64&#039; folders will be in the same location when this is done.&lt;br /&gt;
 &lt;br /&gt;
Step 6) go into oscar64/&lt;br /&gt;
 &lt;br /&gt;
Step 7) type:&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;make -f make/makefile&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
(this assumes gcc being present in WSL, it will take a while!)&lt;br /&gt;
 &lt;br /&gt;
Step 8) switch over to f256lib-oscar64/ and type:&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;OSCAR64=../../oscar64/bin/oscar64 make all&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
(warning 1: at the time of writing this guide, the 2nd project, BachHero, triggers an error that halts the whole list. Simply remove that entry from &#039;&#039;&#039;/f256lib-oscar64/doodles/MakeFile&#039;&#039;&#039; to get the rest going) &lt;br /&gt;
(warning 2: most projects will compile, but not run properly when run in the Wildbits environment since they expect extra library files that have not been ported over)&lt;br /&gt;
 &lt;br /&gt;
Step 9) to compile a single project in general, make sure you use a path that points to the compiled &#039;&#039;&#039;oscar64&#039;&#039;&#039; of step 7 like so:&lt;br /&gt;
(assuming your project &#039;&#039;&#039;myproject&#039;&#039;&#039; is in &#039;&#039;&#039;BASEPATH/f256lib-oscar64/doodles/&#039;&#039;&#039;) &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;BASEPATH/oscar64/bin/oscar64 -tm=f256k -n -i=BASEPATH/f256lib-oscar64/f256lib BASEPATH/f256lib-oscar64/doodles/myproject/src/myproject.c&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=C_Development&amp;diff=38520</id>
		<title>C Development</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=C_Development&amp;diff=38520"/>
		<updated>2026-03-21T14:37:31Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Oscar64 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;C Compilers&#039;&#039;&#039; ==&lt;br /&gt;
* [[cc65]]&lt;br /&gt;
* [https://www.calypsi.cc/ Calypsi]&lt;br /&gt;
* [[llvm-mos]]&lt;br /&gt;
* oscar64&lt;br /&gt;
&lt;br /&gt;
=== LLVM-MOS ===&lt;br /&gt;
This fork of llvm-mos was adapted for F256/Wildbits usage by user sduensing from Kangaroo Punch Studios and [https://kangaroopunch.com/view/ShowSoftware?id=13 can be found here]. The installation instructions are simple and work for both Windows and Linux. It mostly uses a one-stop-shop f256lib.h file containing macros and functions leveraging some devices (not all yet) and the MicroKernel.&lt;br /&gt;
&lt;br /&gt;
The default linking configuration will have your code start at 0x300, a 8 kb stack/trampoline from 0xA000 to 0xBFFF that is used to bring in higher memory content visible into that slice of the first 64k of the CPU. The slice 0xC000 to 0xDFFF is used by IO as usual and 0xE000 to 0xFFFF is used by the MicroKernel as usual. To change any of this, you can bring a modified copy of link.ld into your /projectfolder/ and it will supersede this default mapping.&lt;br /&gt;
&lt;br /&gt;
==== List of &amp;quot;Gotchas&amp;quot; for llvm-mos ====&lt;br /&gt;
1) When trying to use the EMBED directive in order to put data at specific memory locations, keep in mind that you CAN&#039;T comment those lines out with &amp;lt;code&amp;gt;/*&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;*/&amp;lt;/code&amp;gt;, the compiler will try to follow them whether they&#039;re in them or not. The only way to comment them is to use &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2) When trying to use the EMBED directive, you may want to put your assets in a subfolder of your project. As in, assuming your source files are in ./src/ (where &#039;.&#039; is the root of your project) and your assets are in ./assets/, then you WILL need to refer to your asset files like so: &amp;lt;code&amp;gt;EMBED(myassetname, &amp;quot;../assets/myassetfile.bin&amp;quot;, 0x10000);&amp;lt;/code&amp;gt;. Note the weird ../ folder backtracking that has to be used. No other combination worked for me (-Mu0n)&lt;br /&gt;
&lt;br /&gt;
3) In the f256dev/ folder, the f256build.bat file contains all you need to compile and link your project. In the &amp;quot;call mos-f256-clang.bat&amp;quot; line, one important switch is the optimization level you let the compiler use. Experiment with -O1 (no optimization), -O2 (some) and -O3 (most). Some operations and repetitions work with some and fail with others. One prominent example of where it failed was a repetitive fileRead operation that read and parsed little chunks of data from a file, byte by byte and while it compiled and linked, it failed during execution. By reducing -O3 to -O2, it all worked again.&lt;br /&gt;
&lt;br /&gt;
4) One linking error kept giving me &amp;quot;&amp;lt;code&amp;gt;ld.lld: error: ld-temp.o &amp;lt;inline asm&amp;gt;:2:1: operand must be a 16-bit address sta (mos8(.LpickAudioFile_zp_stk+4)&amp;lt;/code&amp;gt;&amp;quot; despite not having written any inline assembly in my project. You can skirt around the issue for the problematic function by adding a compiler attribute: &amp;lt;code&amp;gt;__attribute__((optnone))&amp;lt;/code&amp;gt; right before your function definition.&lt;br /&gt;
&lt;br /&gt;
5) When your code nears a size of 0x9400 and above, you may get in trouble in terms of code not being fully loaded into RAM while executing. Either deliberately put some code into far memory and devise a scheme with the MMU to swap that code in and out of reach for the CPU, or you can carve yourself a bit more space by editing f256dev/llvm-mos/mos-platform/f256/lib/link.ld and change:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/* fake C Stack */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PROVIDE(__stack = 0xA000);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;to&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/* fake C Stack */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PROVIDE(__stack = 0xC000);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to get yourself an extra 8k of code space before it collides with the stack&lt;br /&gt;
&lt;br /&gt;
6) The compiler will often complain about a missing closing curly bracket &#039;}&#039; at the end of your source files. Just add the one it requires at the very end even though it&#039;s an extra one, or, finish your source file by putting your last function with this notation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void myLastFunction(uint8_t whatever) {&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//bunchacode&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== jbaker8935&#039;s guide on creating trampolines for functions in higher memory: ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
what you can do is pick a function in one of your projects that isnt time critical and create a trampoline function for it using this pattern:&lt;br /&gt;
&lt;br /&gt;
void FAR8_video_init(void);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#pragma clang optimize off&lt;br /&gt;
__attribute__((noinline))&lt;br /&gt;
void video_init(void) {&lt;br /&gt;
    volatile unsigned char ___mmu = (unsigned char)*(volatile unsigned char *)0x000d;&lt;br /&gt;
    *(volatile unsigned char *)0x000d = 8;&lt;br /&gt;
    FAR8_video_init();&lt;br /&gt;
    *(volatile unsigned char *)0x000d = ___mmu;&lt;br /&gt;
}&lt;br /&gt;
#pragma clang optimize on&lt;br /&gt;
&lt;br /&gt;
__attribute__((noinline, section(&amp;quot;.block8&amp;quot;)))&lt;br /&gt;
void FAR8_video_init(void)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note: that FAR8_video_init is the renamed function that is being moved.  It&#039;s just a convention.&lt;br /&gt;
in your main you can call video_init as you do normally and the trampoline will take care of swapping the code into A000 in cpu memory.&lt;br /&gt;
For linking you need to create file f256.ld that sits in the project directory.   it is a copy of &amp;quot;${ROOT}/llvm-mos/mos-platform/f256/lib/link.ld&amp;quot; but has additional linker instructions to explain how to deal with block8.  à&lt;br /&gt;
Around line 100 or so you need to add instructions after the include output.ld statement.  like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 /* Overlay Segments and Binary Data */&lt;br /&gt;
  INCLUDE output.ld&lt;br /&gt;
&lt;br /&gt;
/* Hand Coded output.ld records */&lt;br /&gt;
  SHORT(8*0x2000)&lt;br /&gt;
  BYTE(8/8)&lt;br /&gt;
  SHORT(end_block8 - __block8_lma)&lt;br /&gt;
  BYTE(0x00)&lt;br /&gt;
  TRIM(block8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i&#039;m using f256build.sh and the normal &#039;everything in src&#039; structure.  Also I didnt fiddle with moving the default stack or swap page,  so this example trampoline is using A000   (writing to 0x000d).   Note that the mmu is left in edit mode, so the trampolines can just write to 000d with no disabling of interrupts.&lt;br /&gt;
&lt;br /&gt;
=== Oscar64 ===&lt;br /&gt;
Oscar64 is a C/C++ cross compiler running on a modern system (such as a Windows PC, Mac or Linux machine) and targets the classic 6502 family of processors. It is mainly focused on Commodore systems such as the C64, PET or VIC20. The compiler supports C99 and many C++ features up to variadic templates and lambda functions.&lt;br /&gt;
&lt;br /&gt;
The purpose of this compiler is to eliminate the need to write 6502 assembler code to achieve high code density and fast execution speed. It continues to improve with all the games, demos and tools written by it. It supports disk overlays and banked cartridges for larger projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oscar64 was adapted for the F256/WildBits by swdfrost and [https://github.com/sdwfrost/oscar64 here is a link its github page]. You will also need the adaptation of the f256lib (ported over from llvm-mos) [https://github.com/sdwfrost/f256lib-oscar64 from this github page] as well, which also includes many projects examples as well. &lt;br /&gt;
&lt;br /&gt;
==== Getting set up on Windows 10/11 (-Mu0n) ====&lt;br /&gt;
Assumptions:&lt;br /&gt;
&lt;br /&gt;
* Windows&#039; WSL is installed (ie with Ubuntu)&lt;br /&gt;
* Python is installed inside windows&lt;br /&gt;
* make is installed inside WSL&lt;br /&gt;
* gcc is installed inside WSL (&#039;&#039;&#039;sudo apt install build-essential&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Step 1) in Windows, make a base directory (let&#039;s call it BASEPATH) that will hold both:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;nowiki/&amp;gt;* the oscar64 project, but with the &#039;f256k-support&#039; branch rather than &#039;main&#039; branch&lt;br /&gt;
&amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/oscar64&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;nowiki/&amp;gt;* the f256lib-oscar64 project, &#039;main branch&#039;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/f256lib-oscar64&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
(both from sdwfrost&#039;s GitHub account)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Step 2) from windows, open a cmd window, go to your intended base folder&lt;br /&gt;
Step 3) type WSL&lt;br /&gt;
Step 4) clone oscar64 with &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;git clone -b f256k-support &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/oscar64.git&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
Step 5) clone f256lib-oscar64 side by side in the same base folder. &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;git clone -b main &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/f256lib-oscar64&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
Both &#039;oscar64&#039; and &#039;f256lib-oscar64&#039; folders will be in the same location when this is done.&lt;br /&gt;
 &lt;br /&gt;
Step 6) go into oscar64/&lt;br /&gt;
 &lt;br /&gt;
Step 7) type:&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;make -f make/makefile&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
(this assumes gcc being present in WSL, it will take a while!)&lt;br /&gt;
 &lt;br /&gt;
Step 8) switch over to f256lib-oscar64/ and type:&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;OSCAR64=../../oscar64/bin/oscar64 make all&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
(warning 1: at the time of writing this guide, the 2nd project, BachHero, triggers an error that halts the whole list. Simply remove that entry from &#039;&#039;&#039;/f256lib-oscar64/doodles/MakeFile&#039;&#039;&#039; to get the rest going) &lt;br /&gt;
(warning 2: most projects will compile, but not run properly when run in the Wildbits environment since they expect extra library files that have not been ported over)&lt;br /&gt;
 &lt;br /&gt;
Step 9) to compile a single project in general, make sure you use a path that points to the compiled &#039;&#039;&#039;oscar64&#039;&#039;&#039; of step 7 like so:&lt;br /&gt;
(assuming your project &#039;&#039;&#039;myproject&#039;&#039;&#039; is in &#039;&#039;&#039;BASEPATH/f256lib-oscar64/doodles/&#039;&#039;&#039;) &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;BASEPATH/oscar64/bin/oscar64 -tm=f256k -n -i=BASEPATH/f256lib-oscar64/f256lib BASEPATH/f256lib-oscar64/doodles/myproject/src/myproject.c&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=C_Development&amp;diff=38519</id>
		<title>C Development</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=C_Development&amp;diff=38519"/>
		<updated>2026-03-21T14:37:15Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;C Compilers&#039;&#039;&#039; ==&lt;br /&gt;
* [[cc65]]&lt;br /&gt;
* [https://www.calypsi.cc/ Calypsi]&lt;br /&gt;
* [[llvm-mos]]&lt;br /&gt;
* oscar64&lt;br /&gt;
&lt;br /&gt;
=== LLVM-MOS ===&lt;br /&gt;
This fork of llvm-mos was adapted for F256/Wildbits usage by user sduensing from Kangaroo Punch Studios and [https://kangaroopunch.com/view/ShowSoftware?id=13 can be found here]. The installation instructions are simple and work for both Windows and Linux. It mostly uses a one-stop-shop f256lib.h file containing macros and functions leveraging some devices (not all yet) and the MicroKernel.&lt;br /&gt;
&lt;br /&gt;
The default linking configuration will have your code start at 0x300, a 8 kb stack/trampoline from 0xA000 to 0xBFFF that is used to bring in higher memory content visible into that slice of the first 64k of the CPU. The slice 0xC000 to 0xDFFF is used by IO as usual and 0xE000 to 0xFFFF is used by the MicroKernel as usual. To change any of this, you can bring a modified copy of link.ld into your /projectfolder/ and it will supersede this default mapping.&lt;br /&gt;
&lt;br /&gt;
==== List of &amp;quot;Gotchas&amp;quot; for llvm-mos ====&lt;br /&gt;
1) When trying to use the EMBED directive in order to put data at specific memory locations, keep in mind that you CAN&#039;T comment those lines out with &amp;lt;code&amp;gt;/*&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;*/&amp;lt;/code&amp;gt;, the compiler will try to follow them whether they&#039;re in them or not. The only way to comment them is to use &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2) When trying to use the EMBED directive, you may want to put your assets in a subfolder of your project. As in, assuming your source files are in ./src/ (where &#039;.&#039; is the root of your project) and your assets are in ./assets/, then you WILL need to refer to your asset files like so: &amp;lt;code&amp;gt;EMBED(myassetname, &amp;quot;../assets/myassetfile.bin&amp;quot;, 0x10000);&amp;lt;/code&amp;gt;. Note the weird ../ folder backtracking that has to be used. No other combination worked for me (-Mu0n)&lt;br /&gt;
&lt;br /&gt;
3) In the f256dev/ folder, the f256build.bat file contains all you need to compile and link your project. In the &amp;quot;call mos-f256-clang.bat&amp;quot; line, one important switch is the optimization level you let the compiler use. Experiment with -O1 (no optimization), -O2 (some) and -O3 (most). Some operations and repetitions work with some and fail with others. One prominent example of where it failed was a repetitive fileRead operation that read and parsed little chunks of data from a file, byte by byte and while it compiled and linked, it failed during execution. By reducing -O3 to -O2, it all worked again.&lt;br /&gt;
&lt;br /&gt;
4) One linking error kept giving me &amp;quot;&amp;lt;code&amp;gt;ld.lld: error: ld-temp.o &amp;lt;inline asm&amp;gt;:2:1: operand must be a 16-bit address sta (mos8(.LpickAudioFile_zp_stk+4)&amp;lt;/code&amp;gt;&amp;quot; despite not having written any inline assembly in my project. You can skirt around the issue for the problematic function by adding a compiler attribute: &amp;lt;code&amp;gt;__attribute__((optnone))&amp;lt;/code&amp;gt; right before your function definition.&lt;br /&gt;
&lt;br /&gt;
5) When your code nears a size of 0x9400 and above, you may get in trouble in terms of code not being fully loaded into RAM while executing. Either deliberately put some code into far memory and devise a scheme with the MMU to swap that code in and out of reach for the CPU, or you can carve yourself a bit more space by editing f256dev/llvm-mos/mos-platform/f256/lib/link.ld and change:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/* fake C Stack */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PROVIDE(__stack = 0xA000);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;to&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/* fake C Stack */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PROVIDE(__stack = 0xC000);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to get yourself an extra 8k of code space before it collides with the stack&lt;br /&gt;
&lt;br /&gt;
6) The compiler will often complain about a missing closing curly bracket &#039;}&#039; at the end of your source files. Just add the one it requires at the very end even though it&#039;s an extra one, or, finish your source file by putting your last function with this notation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void myLastFunction(uint8_t whatever) {&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//bunchacode&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== jbaker8935&#039;s guide on creating trampolines for functions in higher memory: ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
what you can do is pick a function in one of your projects that isnt time critical and create a trampoline function for it using this pattern:&amp;lt;blockquote&amp;gt;void FAR8_video_init(void);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#pragma clang optimize off&lt;br /&gt;
__attribute__((noinline))&lt;br /&gt;
void video_init(void) {&lt;br /&gt;
    volatile unsigned char ___mmu = (unsigned char)*(volatile unsigned char *)0x000d;&lt;br /&gt;
    *(volatile unsigned char *)0x000d = 8;&lt;br /&gt;
    FAR8_video_init();&lt;br /&gt;
    *(volatile unsigned char *)0x000d = ___mmu;&lt;br /&gt;
}&lt;br /&gt;
#pragma clang optimize on&lt;br /&gt;
&lt;br /&gt;
__attribute__((noinline, section(&amp;quot;.block8&amp;quot;)))&lt;br /&gt;
void FAR8_video_init(void)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note: that FAR8_video_init is the renamed function that is being moved.  It&#039;s just a convention.&lt;br /&gt;
in your main you can call video_init as you do normally and the trampoline will take care of swapping the code into A000 in cpu memory.&lt;br /&gt;
For linking you need to create file f256.ld that sits in the project directory.   it is a copy of &amp;quot;${ROOT}/llvm-mos/mos-platform/f256/lib/link.ld&amp;quot; but has additional linker instructions to explain how to deal with block8.  à&lt;br /&gt;
Around line 100 or so you need to add instructions after the include output.ld statement.  like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 /* Overlay Segments and Binary Data */&lt;br /&gt;
  INCLUDE output.ld&lt;br /&gt;
&lt;br /&gt;
/* Hand Coded output.ld records */&lt;br /&gt;
  SHORT(8*0x2000)&lt;br /&gt;
  BYTE(8/8)&lt;br /&gt;
  SHORT(end_block8 - __block8_lma)&lt;br /&gt;
  BYTE(0x00)&lt;br /&gt;
  TRIM(block8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i&#039;m using f256build.sh and the normal &#039;everything in src&#039; structure.  Also I didnt fiddle with moving the default stack or swap page,  so this example trampoline is using A000   (writing to 0x000d).   Note that the mmu is left in edit mode, so the trampolines can just write to 000d with no disabling of interrupts.&lt;br /&gt;
&lt;br /&gt;
=== Oscar64 ===&lt;br /&gt;
Oscar64 is a C/C++ cross compiler running on a modern system (such as a Windows PC, Mac or Linux machine) and targets the classic 6502 family of processors. It is mainly focused on Commodore systems such as the C64, PET or VIC20. The compiler supports C99 and many C++ features up to variadic templates and lambda functions.&lt;br /&gt;
&lt;br /&gt;
The purpose of this compiler is to eliminate the need to write 6502 assembler code to achieve high code density and fast execution speed. It continues to improve with all the games, demos and tools written by it. It supports disk overlays and banked cartridges for larger projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oscar64 was adapted for the F256/WildBits by swdfrost and [https://github.com/sdwfrost/oscar64 here is a link its github page]. You will also need the adaptation of the f256lib (ported over from llvm-mos) [https://github.com/sdwfrost/f256lib-oscar64 from this github page] as well, which also includes many projects examples as well. &lt;br /&gt;
&lt;br /&gt;
==== Getting set up on Windows 10/11 (-Mu0n) ====&lt;br /&gt;
Assumptions:&lt;br /&gt;
&lt;br /&gt;
* Windows&#039; WSL is installed (ie with Ubuntu)&lt;br /&gt;
* Python is installed inside windows&lt;br /&gt;
* make is installed inside WSL&lt;br /&gt;
* gcc is installed inside WSL (&#039;&#039;&#039;sudo apt install build-essential&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Step 1) in Windows, make a base directory (let&#039;s call it BASEPATH) that will hold both:&lt;br /&gt;
 &lt;br /&gt;
 * the oscar64 project, but with the &#039;f256k-support&#039; branch rather than &#039;main&#039; branch&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/oscar64&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 * the f256lib-oscar64 project, &#039;main branch&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/f256lib-oscar64&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 (both from sdwfrost&#039;s GitHub account)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Step 2) from windows, open a cmd window, go to your intended base folder&lt;br /&gt;
 Step 3) type WSL&lt;br /&gt;
 Step 4) clone oscar64 with &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;git clone -b f256k-support &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/oscar64.git&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Step 5) clone f256lib-oscar64 side by side in the same base folder. &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;git clone -b main &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/f256lib-oscar64&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Both &#039;oscar64&#039; and &#039;f256lib-oscar64&#039; folders will be in the same location when this is done.&lt;br /&gt;
 &lt;br /&gt;
 Step 6) go into oscar64/&lt;br /&gt;
 &lt;br /&gt;
 Step 7) type:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;make -f make/makefile&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 (this assumes gcc being present in WSL, it will take a while!)&lt;br /&gt;
 &lt;br /&gt;
 Step 8) switch over to f256lib-oscar64/ and type:&lt;br /&gt;
 &lt;br /&gt;
  &#039;&#039;&#039;OSCAR64=../../oscar64/bin/oscar64 make all&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 (warning 1: at the time of writing this guide, the 2nd project, BachHero, triggers an error that halts the whole list. Simply remove that entry from &#039;&#039;&#039;/f256lib-oscar64/doodles/MakeFile&#039;&#039;&#039; to get the rest going) &lt;br /&gt;
 (warning 2: most projects will compile, but not run properly when run in the Wildbits environment since they expect extra library files that have not been ported over)&lt;br /&gt;
 &lt;br /&gt;
 Step 9) to compile a single project in general, make sure you use a path that points to the compiled &#039;&#039;&#039;oscar64&#039;&#039;&#039; of step 7 like so:&lt;br /&gt;
 (assuming your project &#039;&#039;&#039;myproject&#039;&#039;&#039; is in &#039;&#039;&#039;BASEPATH/f256lib-oscar64/doodles/&#039;&#039;&#039;) &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;BASEPATH/oscar64/bin/oscar64 -tm=f256k -n -i=BASEPATH/f256lib-oscar64/f256lib BASEPATH/f256lib-oscar64/doodles/myproject/src/myproject.c&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=C_Development&amp;diff=38518</id>
		<title>C Development</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=C_Development&amp;diff=38518"/>
		<updated>2026-03-21T14:36:27Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: indent was weird for the oscar64 section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;C Compilers&#039;&#039;&#039; ==&lt;br /&gt;
* [[cc65]]&lt;br /&gt;
* [https://www.calypsi.cc/ Calypsi]&lt;br /&gt;
* [[llvm-mos]]&lt;br /&gt;
* oscar64&lt;br /&gt;
&lt;br /&gt;
=== LLVM-MOS ===&lt;br /&gt;
This fork of llvm-mos was adapted for F256/Wildbits usage by user sduensing from Kangaroo Punch Studios and [https://kangaroopunch.com/view/ShowSoftware?id=13 can be found here]. The installation instructions are simple and work for both Windows and Linux. It mostly uses a one-stop-shop f256lib.h file containing macros and functions leveraging some devices (not all yet) and the MicroKernel.&lt;br /&gt;
&lt;br /&gt;
The default linking configuration will have your code start at 0x300, a 8 kb stack/trampoline from 0xA000 to 0xBFFF that is used to bring in higher memory content visible into that slice of the first 64k of the CPU. The slice 0xC000 to 0xDFFF is used by IO as usual and 0xE000 to 0xFFFF is used by the MicroKernel as usual. To change any of this, you can bring a modified copy of link.ld into your /projectfolder/ and it will supersede this default mapping.&lt;br /&gt;
&lt;br /&gt;
==== List of &amp;quot;Gotchas&amp;quot; for llvm-mos ====&lt;br /&gt;
1) When trying to use the EMBED directive in order to put data at specific memory locations, keep in mind that you CAN&#039;T comment those lines out with &amp;lt;code&amp;gt;/*&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;*/&amp;lt;/code&amp;gt;, the compiler will try to follow them whether they&#039;re in them or not. The only way to comment them is to use &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2) When trying to use the EMBED directive, you may want to put your assets in a subfolder of your project. As in, assuming your source files are in ./src/ (where &#039;.&#039; is the root of your project) and your assets are in ./assets/, then you WILL need to refer to your asset files like so: &amp;lt;code&amp;gt;EMBED(myassetname, &amp;quot;../assets/myassetfile.bin&amp;quot;, 0x10000);&amp;lt;/code&amp;gt;. Note the weird ../ folder backtracking that has to be used. No other combination worked for me (-Mu0n)&lt;br /&gt;
&lt;br /&gt;
3) In the f256dev/ folder, the f256build.bat file contains all you need to compile and link your project. In the &amp;quot;call mos-f256-clang.bat&amp;quot; line, one important switch is the optimization level you let the compiler use. Experiment with -O1 (no optimization), -O2 (some) and -O3 (most). Some operations and repetitions work with some and fail with others. One prominent example of where it failed was a repetitive fileRead operation that read and parsed little chunks of data from a file, byte by byte and while it compiled and linked, it failed during execution. By reducing -O3 to -O2, it all worked again.&lt;br /&gt;
&lt;br /&gt;
4) One linking error kept giving me &amp;quot;&amp;lt;code&amp;gt;ld.lld: error: ld-temp.o &amp;lt;inline asm&amp;gt;:2:1: operand must be a 16-bit address sta (mos8(.LpickAudioFile_zp_stk+4)&amp;lt;/code&amp;gt;&amp;quot; despite not having written any inline assembly in my project. You can skirt around the issue for the problematic function by adding a compiler attribute: &amp;lt;code&amp;gt;__attribute__((optnone))&amp;lt;/code&amp;gt; right before your function definition.&lt;br /&gt;
&lt;br /&gt;
5) When your code nears a size of 0x9400 and above, you may get in trouble in terms of code not being fully loaded into RAM while executing. Either deliberately put some code into far memory and devise a scheme with the MMU to swap that code in and out of reach for the CPU, or you can carve yourself a bit more space by editing f256dev/llvm-mos/mos-platform/f256/lib/link.ld and change:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/* fake C Stack */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PROVIDE(__stack = 0xA000);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;to&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/* fake C Stack */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PROVIDE(__stack = 0xC000);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to get yourself an extra 8k of code space before it collides with the stack&lt;br /&gt;
&lt;br /&gt;
6) The compiler will often complain about a missing closing curly bracket &#039;}&#039; at the end of your source files. Just add the one it requires at the very end even though it&#039;s an extra one, or, finish your source file by putting your last function with this notation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void myLastFunction(uint8_t whatever) {&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//bunchacode&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== jbaker8935&#039;s guide on creating trampolines for functions in higher memory: ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
what you can do is pick a function in one of your projects that isnt time critical and create a trampoline function for it using this pattern:&amp;lt;blockquote&amp;gt;void FAR8_video_init(void);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#pragma clang optimize off&lt;br /&gt;
__attribute__((noinline))&lt;br /&gt;
void video_init(void) {&lt;br /&gt;
    volatile unsigned char ___mmu = (unsigned char)*(volatile unsigned char *)0x000d;&lt;br /&gt;
    *(volatile unsigned char *)0x000d = 8;&lt;br /&gt;
    FAR8_video_init();&lt;br /&gt;
    *(volatile unsigned char *)0x000d = ___mmu;&lt;br /&gt;
}&lt;br /&gt;
#pragma clang optimize on&lt;br /&gt;
&lt;br /&gt;
__attribute__((noinline, section(&amp;quot;.block8&amp;quot;)))&lt;br /&gt;
void FAR8_video_init(void)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note: that FAR8_video_init is the renamed function that is being moved.  It&#039;s just a convention.&lt;br /&gt;
in your main you can call video_init as you do normally and the trampoline will take care of swapping the code into A000 in cpu memory.&lt;br /&gt;
For linking you need to create file f256.ld that sits in the project directory.   it is a copy of &amp;quot;${ROOT}/llvm-mos/mos-platform/f256/lib/link.ld&amp;quot; but has additional linker instructions to explain how to deal with block8.  à&lt;br /&gt;
Around line 100 or so you need to add instructions after the include output.ld statement.  like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 /* Overlay Segments and Binary Data */&lt;br /&gt;
  INCLUDE output.ld&lt;br /&gt;
&lt;br /&gt;
/* Hand Coded output.ld records */&lt;br /&gt;
  SHORT(8*0x2000)&lt;br /&gt;
  BYTE(8/8)&lt;br /&gt;
  SHORT(end_block8 - __block8_lma)&lt;br /&gt;
  BYTE(0x00)&lt;br /&gt;
  TRIM(block8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i&#039;m using f256build.sh and the normal &#039;everything in src&#039; structure.  Also I didnt fiddle with moving the default stack or swap page,  so this example trampoline is using A000   (writing to 0x000d).   Note that the mmu is left in edit mode, so the trampolines can just write to 000d with no disabling of interrupts.&lt;br /&gt;
&lt;br /&gt;
=== Oscar64 ===&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Oscar64 is a C/C++ cross compiler running on a modern system (such as a Windows PC, Mac or Linux machine) and targets the classic 6502 family of processors. It is mainly focused on Commodore systems such as the C64, PET or VIC20. The compiler supports C99 and many C++ features up to variadic templates and lambda functions.&lt;br /&gt;
&lt;br /&gt;
The purpose of this compiler is to eliminate the need to write 6502 assembler code to achieve high code density and fast execution speed. It continues to improve with all the games, demos and tools written by it. It supports disk overlays and banked cartridges for larger projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oscar64 was adapted for the F256/WildBits by swdfrost and [https://github.com/sdwfrost/oscar64 here is a link its github page]. You will also need the adaptation of the f256lib (ported over from llvm-mos) [https://github.com/sdwfrost/f256lib-oscar64 from this github page] as well, which also includes many projects examples as well. &lt;br /&gt;
&lt;br /&gt;
==== Getting set up on Windows 10/11 (-Mu0n) ====&lt;br /&gt;
Assumptions:&lt;br /&gt;
&lt;br /&gt;
* Windows&#039; WSL is installed (ie with Ubuntu)&lt;br /&gt;
* Python is installed inside windows&lt;br /&gt;
* make is installed inside WSL&lt;br /&gt;
* gcc is installed inside WSL (&#039;&#039;&#039;sudo apt install build-essential&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Step 1) in Windows, make a base directory (let&#039;s call it BASEPATH) that will hold both:&lt;br /&gt;
 &lt;br /&gt;
 * the oscar64 project, but with the &#039;f256k-support&#039; branch rather than &#039;main&#039; branch&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/oscar64&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 * the f256lib-oscar64 project, &#039;main branch&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/f256lib-oscar64&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 (both from sdwfrost&#039;s GitHub account)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Step 2) from windows, open a cmd window, go to your intended base folder&lt;br /&gt;
 Step 3) type WSL&lt;br /&gt;
 Step 4) clone oscar64 with &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;git clone -b f256k-support &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/oscar64.git&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Step 5) clone f256lib-oscar64 side by side in the same base folder. &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;git clone -b main &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/f256lib-oscar64&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Both &#039;oscar64&#039; and &#039;f256lib-oscar64&#039; folders will be in the same location when this is done.&lt;br /&gt;
 &lt;br /&gt;
 Step 6) go into oscar64/&lt;br /&gt;
 &lt;br /&gt;
 Step 7) type:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;make -f make/makefile&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 (this assumes gcc being present in WSL, it will take a while!)&lt;br /&gt;
 &lt;br /&gt;
 Step 8) switch over to f256lib-oscar64/ and type:&lt;br /&gt;
 &lt;br /&gt;
  &#039;&#039;&#039;OSCAR64=../../oscar64/bin/oscar64 make all&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 (warning 1: at the time of writing this guide, the 2nd project, BachHero, triggers an error that halts the whole list. Simply remove that entry from &#039;&#039;&#039;/f256lib-oscar64/doodles/MakeFile&#039;&#039;&#039; to get the rest going) &lt;br /&gt;
 (warning 2: most projects will compile, but not run properly when run in the Wildbits environment since they expect extra library files that have not been ported over)&lt;br /&gt;
 &lt;br /&gt;
 Step 9) to compile a single project in general, make sure you use a path that points to the compiled &#039;&#039;&#039;oscar64&#039;&#039;&#039; of step 7 like so:&lt;br /&gt;
 (assuming your project &#039;&#039;&#039;myproject&#039;&#039;&#039; is in &#039;&#039;&#039;BASEPATH/f256lib-oscar64/doodles/&#039;&#039;&#039;) &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;BASEPATH/oscar64/bin/oscar64 -tm=f256k -n -i=BASEPATH/f256lib-oscar64/f256lib BASEPATH/f256lib-oscar64/doodles/myproject/src/myproject.c&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=C_Development&amp;diff=38517</id>
		<title>C Development</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=C_Development&amp;diff=38517"/>
		<updated>2026-03-21T14:34:33Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: added oscar64 and reorganized sections for llvm-mos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;C Compilers&#039;&#039;&#039; ==&lt;br /&gt;
* [[cc65]]&lt;br /&gt;
* [https://www.calypsi.cc/ Calypsi]&lt;br /&gt;
* [[llvm-mos]]&lt;br /&gt;
* oscar64&lt;br /&gt;
&lt;br /&gt;
=== LLVM-MOS ===&lt;br /&gt;
This fork of llvm-mos was adapted for F256/Wildbits usage by user sduensing from Kangaroo Punch Studios and [https://kangaroopunch.com/view/ShowSoftware?id=13 can be found here]. The installation instructions are simple and work for both Windows and Linux. It mostly uses a one-stop-shop f256lib.h file containing macros and functions leveraging some devices (not all yet) and the MicroKernel.&lt;br /&gt;
&lt;br /&gt;
The default linking configuration will have your code start at 0x300, a 8 kb stack/trampoline from 0xA000 to 0xBFFF that is used to bring in higher memory content visible into that slice of the first 64k of the CPU. The slice 0xC000 to 0xDFFF is used by IO as usual and 0xE000 to 0xFFFF is used by the MicroKernel as usual. To change any of this, you can bring a modified copy of link.ld into your /projectfolder/ and it will supersede this default mapping.&lt;br /&gt;
&lt;br /&gt;
==== List of &amp;quot;Gotchas&amp;quot; for llvm-mos ====&lt;br /&gt;
1) When trying to use the EMBED directive in order to put data at specific memory locations, keep in mind that you CAN&#039;T comment those lines out with &amp;lt;code&amp;gt;/*&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;*/&amp;lt;/code&amp;gt;, the compiler will try to follow them whether they&#039;re in them or not. The only way to comment them is to use &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2) When trying to use the EMBED directive, you may want to put your assets in a subfolder of your project. As in, assuming your source files are in ./src/ (where &#039;.&#039; is the root of your project) and your assets are in ./assets/, then you WILL need to refer to your asset files like so: &amp;lt;code&amp;gt;EMBED(myassetname, &amp;quot;../assets/myassetfile.bin&amp;quot;, 0x10000);&amp;lt;/code&amp;gt;. Note the weird ../ folder backtracking that has to be used. No other combination worked for me (-Mu0n)&lt;br /&gt;
&lt;br /&gt;
3) In the f256dev/ folder, the f256build.bat file contains all you need to compile and link your project. In the &amp;quot;call mos-f256-clang.bat&amp;quot; line, one important switch is the optimization level you let the compiler use. Experiment with -O1 (no optimization), -O2 (some) and -O3 (most). Some operations and repetitions work with some and fail with others. One prominent example of where it failed was a repetitive fileRead operation that read and parsed little chunks of data from a file, byte by byte and while it compiled and linked, it failed during execution. By reducing -O3 to -O2, it all worked again.&lt;br /&gt;
&lt;br /&gt;
4) One linking error kept giving me &amp;quot;&amp;lt;code&amp;gt;ld.lld: error: ld-temp.o &amp;lt;inline asm&amp;gt;:2:1: operand must be a 16-bit address sta (mos8(.LpickAudioFile_zp_stk+4)&amp;lt;/code&amp;gt;&amp;quot; despite not having written any inline assembly in my project. You can skirt around the issue for the problematic function by adding a compiler attribute: &amp;lt;code&amp;gt;__attribute__((optnone))&amp;lt;/code&amp;gt; right before your function definition.&lt;br /&gt;
&lt;br /&gt;
5) When your code nears a size of 0x9400 and above, you may get in trouble in terms of code not being fully loaded into RAM while executing. Either deliberately put some code into far memory and devise a scheme with the MMU to swap that code in and out of reach for the CPU, or you can carve yourself a bit more space by editing f256dev/llvm-mos/mos-platform/f256/lib/link.ld and change:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/* fake C Stack */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PROVIDE(__stack = 0xA000);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;to&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/* fake C Stack */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PROVIDE(__stack = 0xC000);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to get yourself an extra 8k of code space before it collides with the stack&lt;br /&gt;
&lt;br /&gt;
6) The compiler will often complain about a missing closing curly bracket &#039;}&#039; at the end of your source files. Just add the one it requires at the very end even though it&#039;s an extra one, or, finish your source file by putting your last function with this notation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void myLastFunction(uint8_t whatever) {&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//bunchacode&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== jbaker8935&#039;s guide on creating trampolines for functions in higher memory: ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
what you can do is pick a function in one of your projects that isnt time critical and create a trampoline function for it using this pattern:&amp;lt;blockquote&amp;gt;void FAR8_video_init(void);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#pragma clang optimize off&lt;br /&gt;
__attribute__((noinline))&lt;br /&gt;
void video_init(void) {&lt;br /&gt;
    volatile unsigned char ___mmu = (unsigned char)*(volatile unsigned char *)0x000d;&lt;br /&gt;
    *(volatile unsigned char *)0x000d = 8;&lt;br /&gt;
    FAR8_video_init();&lt;br /&gt;
    *(volatile unsigned char *)0x000d = ___mmu;&lt;br /&gt;
}&lt;br /&gt;
#pragma clang optimize on&lt;br /&gt;
&lt;br /&gt;
__attribute__((noinline, section(&amp;quot;.block8&amp;quot;)))&lt;br /&gt;
void FAR8_video_init(void)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note: that FAR8_video_init is the renamed function that is being moved.  It&#039;s just a convention.&lt;br /&gt;
in your main you can call video_init as you do normally and the trampoline will take care of swapping the code into A000 in cpu memory.&lt;br /&gt;
For linking you need to create file f256.ld that sits in the project directory.   it is a copy of &amp;quot;${ROOT}/llvm-mos/mos-platform/f256/lib/link.ld&amp;quot; but has additional linker instructions to explain how to deal with block8.  à&lt;br /&gt;
Around line 100 or so you need to add instructions after the include output.ld statement.  like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 /* Overlay Segments and Binary Data */&lt;br /&gt;
  INCLUDE output.ld&lt;br /&gt;
&lt;br /&gt;
/* Hand Coded output.ld records */&lt;br /&gt;
  SHORT(8*0x2000)&lt;br /&gt;
  BYTE(8/8)&lt;br /&gt;
  SHORT(end_block8 - __block8_lma)&lt;br /&gt;
  BYTE(0x00)&lt;br /&gt;
  TRIM(block8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i&#039;m using f256build.sh and the normal &#039;everything in src&#039; structure.  Also I didnt fiddle with moving the default stack or swap page,  so this example trampoline is using A000   (writing to 0x000d).   Note that the mmu is left in edit mode, so the trampolines can just write to 000d with no disabling of interrupts.&lt;br /&gt;
&lt;br /&gt;
=== Oscar64 ===&lt;br /&gt;
Oscar64 is a C/C++ cross compiler running on a modern system (such as a Windows PC, Mac or Linux machine) and targets the classic 6502 family of processors. It is mainly focused on Commodore systems such as the C64, PET or VIC20. The compiler supports C99 and many C++ features up to variadic templates and lambda functions.&lt;br /&gt;
&lt;br /&gt;
The purpose of this compiler is to eliminate the need to write 6502 assembler code to achieve high code density and fast execution speed. It continues to improve with all the games, demos and tools written by it. It supports disk overlays and banked cartridges for larger projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oscar64 was adapted for the F256/WildBits by swdfrost and [https://github.com/sdwfrost/oscar64 here is a link its github page]. You will also need the adaptation of the f256lib (ported over from llvm-mos) [https://github.com/sdwfrost/f256lib-oscar64 from this github page] as well, which also includes many projects examples as well. &lt;br /&gt;
&lt;br /&gt;
==== Getting set up on Windows 10/11 (-Mu0n) ====&lt;br /&gt;
Assumptions:&lt;br /&gt;
&lt;br /&gt;
* Windows&#039; WSL is installed (ie with Ubuntu)&lt;br /&gt;
* Python is installed inside windows&lt;br /&gt;
* make is installed inside WSL&lt;br /&gt;
* gcc is installed inside WSL (&#039;&#039;&#039;sudo apt install build-essential&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Step 1) in Windows, make a base directory (let&#039;s call it BASEPATH) that will hold both:&lt;br /&gt;
 &lt;br /&gt;
 * the oscar64 project, but with the &#039;f256k-support&#039; branch rather than &#039;main&#039; branch&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/oscar64&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 * the f256lib-oscar64 project, &#039;main branch&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/f256lib-oscar64&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 (both from sdwfrost&#039;s GitHub account)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Step 2) from windows, open a cmd window, go to your intended base folder&lt;br /&gt;
 Step 3) type WSL&lt;br /&gt;
 Step 4) clone oscar64 with &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;git clone -b f256k-support &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/oscar64.git&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Step 5) clone f256lib-oscar64 side by side in the same base folder. &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;git clone -b main &amp;lt;nowiki&amp;gt;https://github.com/sdwfrost/f256lib-oscar64&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Both &#039;oscar64&#039; and &#039;f256lib-oscar64&#039; folders will be in the same location when this is done.&lt;br /&gt;
 &lt;br /&gt;
 Step 6) go into oscar64/&lt;br /&gt;
 &lt;br /&gt;
 Step 7) type:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;make -f make/makefile&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 (this assumes gcc being present in WSL, it will take a while!)&lt;br /&gt;
 &lt;br /&gt;
 Step 8) switch over to f256lib-oscar64/ and type:&lt;br /&gt;
 &lt;br /&gt;
  &#039;&#039;&#039;OSCAR64=../../oscar64/bin/oscar64 make all&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 (warning 1: at the time of writing this guide, the 2nd project, BachHero, triggers an error that halts the whole list. Simply remove that entry from &#039;&#039;&#039;/f256lib-oscar64/doodles/MakeFile&#039;&#039;&#039; to get the rest going) &lt;br /&gt;
 (warning 2: most projects will compile, but not run properly when run in the Wildbits environment since they expect extra library files that have not been ported over)&lt;br /&gt;
 &lt;br /&gt;
 Step 9) to compile a single project in general, make sure you use a path that points to the compiled &#039;&#039;&#039;oscar64&#039;&#039;&#039; of step 7 like so:&lt;br /&gt;
 (assuming your project &#039;&#039;&#039;myproject&#039;&#039;&#039; is in &#039;&#039;&#039;BASEPATH/f256lib-oscar64/doodles/&#039;&#039;&#039;) &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;BASEPATH/oscar64/bin/oscar64 -tm=f256k -n -i=BASEPATH/f256lib-oscar64/f256lib BASEPATH/f256lib-oscar64/doodles/myproject/src/myproject.c&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Raspberry_Pi_Pico_Update&amp;diff=38463</id>
		<title>Raspberry Pi Pico Update</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Raspberry_Pi_Pico_Update&amp;diff=38463"/>
		<updated>2026-02-14T15:29:44Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: warning for header rip&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Raspberry Pi Pico Update ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
There is an onboard RP2040 chip (pi pico). It is NOT PRESENT on the Jr2. It&#039;s only present on the K2. It&#039;s responsible for the following things:&lt;br /&gt;
&lt;br /&gt;
* the bootloader procedure that loads the right core while booting the K2. &lt;br /&gt;
* it is also known as the &amp;quot;FPGA Manager&amp;quot;&lt;br /&gt;
* Has modifiable code that can invite more features and possibly a faster bootup&lt;br /&gt;
&lt;br /&gt;
=== Preparing new pico flash files ===&lt;br /&gt;
&lt;br /&gt;
Check this [https://github.com/wildbitscomputing/fpga-manager fpga manager] repo from Cibee which can tweak and compile such files into .uf2. This project uses VSCode, the pico sdk and openocd in order to do everything.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a summary of the booting time gains that were accomplished by Cibee (see the benchmark table on the side)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
bit bang (slowest): was the old method, at launch of the K2, of sending a core file to the FPGA. &lt;br /&gt;
&lt;br /&gt;
pio (faster): is the new method tried by Cibee&lt;br /&gt;
&lt;br /&gt;
SD raw (slowest): was the old way of storing the core file, uncompressed, as .bin files. See [[FPGA_Releases#How_to_Upgrade_the_FPGA_for_the_F256K2]] for the exact file structure needed inside the internal &amp;quot;left&amp;quot; uSD card.&lt;br /&gt;
&lt;br /&gt;
SD gzip (faster): is a new method of individually storing those same core files as .bin.gzip, reducing the amount of bytes to send dramatically&lt;br /&gt;
&lt;br /&gt;
FLASH LZ4 (fastest): is embedding the core files inside the pi pico flash memory so that the core manager carries its own data and sends it to the fpga during bootup. This no longer involves the internal &amp;quot;left&amp;quot; uSD card at all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When a recent enough fpga manager (January 2026) is flashed into the pi pico, it will try to prepare the fpga with this following sequence:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Reads a 2-bit context DIP switch to select one of four FPGA slots.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Attempts SD card programming first (LZ4 blocks, gzip, then raw .bin).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Falls back to LZ4 images stored in fixed flash slots if SD is unavailable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Prints the chosen method and timing over USB stdio if enabled.&lt;br /&gt;
[[File:FPGA Manager Benchmark.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
=== Opening the case ===&lt;br /&gt;
&lt;br /&gt;
You can refer to this section to learn how you can be [[Opening_the_F256K_case]]&lt;br /&gt;
&lt;br /&gt;
=== Flashing using the onboard USB Header ===&lt;br /&gt;
&lt;br /&gt;
Here are the steps to follow:&lt;br /&gt;
[[File:Rp2040-cable.jpeg|thumb|Connector location for the pico USB pin header, Switch S3 on the left, and cable orientation]]&lt;br /&gt;
Installation step:&lt;br /&gt;
&lt;br /&gt;
* Install Cable as above (F256K2 Powered Off). &#039;&#039;&#039;WARNING&#039;&#039;&#039;, with &#039;&#039;&#039;VERY LITTLE&#039;&#039;&#039; cable tension, this pin header can snap off [from Mu0n] and force you onto the next method of flashing using the SWD header, as seen in the next section.&lt;br /&gt;
* Plug Cable in any PC that holds the new programming file.&lt;br /&gt;
* Keep 1 finger on the button&lt;br /&gt;
* Power the F256K2&lt;br /&gt;
* A new folder will appear on the PC&#039;s Desktop&lt;br /&gt;
* Drop the new .uf2 file in the newly appeared folder.&lt;br /&gt;
* Power off F256K2&lt;br /&gt;
* Remove cable&lt;br /&gt;
* Reinstall the system as your heart&#039;s desire&lt;br /&gt;
* Power On the unit&lt;br /&gt;
* RP2040 is updated and running (because you need it to boot the unit)&lt;br /&gt;
* Bob&#039;s your uncle!&lt;br /&gt;
&lt;br /&gt;
=== Flashing using the onboard SWD Header ===&lt;br /&gt;
&lt;br /&gt;
SWD: Serial Wire Debug. This other pin header is a second way to update your flash and gives a little more flexibility to do it piece by piece by flashing .bin at specific flash locations or .elf in one go.&lt;br /&gt;
[[File:Swd connector.png|thumb|Connector location for the SWD pin header, near the FPGA]]&lt;br /&gt;
&lt;br /&gt;
You&#039;ll need either:&lt;br /&gt;
&lt;br /&gt;
* a [https://www.raspberrypi.com/documentation/microcontrollers/debug-probe.html Pi Debug Probe] which comes with the necessary cable that leads to 3 female Dupont endings needed here&lt;br /&gt;
* openocd tool from PicoSDK v1.5.1 or more recent&lt;br /&gt;
* a prepared .bin file with updated code. &lt;br /&gt;
* a conversion tool to convert .uf2 to .bin, you can use this website https://polpo.org/tmp/uf2-to-bin.html or other known tools in the pico community&lt;br /&gt;
* the key step is to use openocd like so: openocd -s scripts -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c &amp;quot;adapter speed 5000; program NewFirmware.bin verify reset exit 0x10000000&amp;quot;&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Raspberry_Pi_Pico_Update&amp;diff=38462</id>
		<title>Raspberry Pi Pico Update</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Raspberry_Pi_Pico_Update&amp;diff=38462"/>
		<updated>2026-02-14T15:27:09Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Raspberry Pi Pico Update */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Raspberry Pi Pico Update ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
There is an onboard RP2040 chip (pi pico). It is NOT PRESENT on the Jr2. It&#039;s only present on the K2. It&#039;s responsible for the following things:&lt;br /&gt;
&lt;br /&gt;
* the bootloader procedure that loads the right core while booting the K2. &lt;br /&gt;
* it is also known as the &amp;quot;FPGA Manager&amp;quot;&lt;br /&gt;
* Has modifiable code that can invite more features and possibly a faster bootup&lt;br /&gt;
&lt;br /&gt;
=== Preparing new pico flash files ===&lt;br /&gt;
&lt;br /&gt;
Check this [https://github.com/wildbitscomputing/fpga-manager fpga manager] repo from Cibee which can tweak and compile such files into .uf2. This project uses VSCode, the pico sdk and openocd in order to do everything.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a summary of the booting time gains that were accomplished by Cibee (see the benchmark table on the side)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
bit bang (slowest): was the old method, at launch of the K2, of sending a core file to the FPGA. &lt;br /&gt;
&lt;br /&gt;
pio (faster): is the new method tried by Cibee&lt;br /&gt;
&lt;br /&gt;
SD raw (slowest): was the old way of storing the core file, uncompressed, as .bin files. See [[FPGA_Releases#How_to_Upgrade_the_FPGA_for_the_F256K2]] for the exact file structure needed inside the internal &amp;quot;left&amp;quot; uSD card.&lt;br /&gt;
&lt;br /&gt;
SD gzip (faster): is a new method of individually storing those same core files as .bin.gzip, reducing the amount of bytes to send dramatically&lt;br /&gt;
&lt;br /&gt;
FLASH LZ4 (fastest): is embedding the core files inside the pi pico flash memory so that the core manager carries its own data and sends it to the fpga during bootup. This no longer involves the internal &amp;quot;left&amp;quot; uSD card at all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When a recent enough fpga manager (January 2026) is flashed into the pi pico, it will try to prepare the fpga with this following sequence:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Reads a 2-bit context DIP switch to select one of four FPGA slots.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Attempts SD card programming first (LZ4 blocks, gzip, then raw .bin).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Falls back to LZ4 images stored in fixed flash slots if SD is unavailable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Prints the chosen method and timing over USB stdio if enabled.&lt;br /&gt;
[[File:FPGA Manager Benchmark.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
=== Opening the case ===&lt;br /&gt;
&lt;br /&gt;
You can refer to this section to learn how you can be [[Opening_the_F256K_case]]&lt;br /&gt;
&lt;br /&gt;
=== Flashing using the onboard USB Header ===&lt;br /&gt;
&lt;br /&gt;
Here are the steps to follow:&lt;br /&gt;
[[File:Rp2040-cable.jpeg|thumb|Connector location for the pico USB pin header, Switch S3 on the left, and cable orientation]]&lt;br /&gt;
Installation step:&lt;br /&gt;
&lt;br /&gt;
* Install Cable as above (F256K2 Powered Off)&lt;br /&gt;
* Plug Cable in any PC that holds the new programming file.&lt;br /&gt;
* Keep 1 finger on the button&lt;br /&gt;
* Power the F256K2&lt;br /&gt;
* A new folder will appear on the PC&#039;s Desktop&lt;br /&gt;
* Drop the new .uf2 file in the newly appeared folder.&lt;br /&gt;
* Power off F256K2&lt;br /&gt;
* Remove cable&lt;br /&gt;
* Reinstall the system as your heart&#039;s desire&lt;br /&gt;
* Power On the unit&lt;br /&gt;
* RP2040 is updated and running (because you need it to boot the unit)&lt;br /&gt;
* Bob&#039;s your uncle!&lt;br /&gt;
&lt;br /&gt;
=== Flashing using the onboard SWD Header ===&lt;br /&gt;
&lt;br /&gt;
SWD: Serial Wire Debug. This other pin header is a second way to update your flash and gives a little more flexibility to do it piece by piece by flashing .bin at specific flash locations or .elf in one go.&lt;br /&gt;
[[File:Swd connector.png|thumb|Connector location for the SWD pin header, near the FPGA]]&lt;br /&gt;
&lt;br /&gt;
You&#039;ll need either:&lt;br /&gt;
&lt;br /&gt;
* a [https://www.raspberrypi.com/documentation/microcontrollers/debug-probe.html Pi Debug Probe] which comes with the necessary cable that leads to 3 female Dupont endings needed here&lt;br /&gt;
* openocd tool from PicoSDK v1.5.1 or more recent&lt;br /&gt;
* a prepared .bin file with updated code. &lt;br /&gt;
* a conversion tool to convert .uf2 to .bin, you can use this website https://polpo.org/tmp/uf2-to-bin.html or other known tools in the pico community&lt;br /&gt;
* the key step is to use openocd like so: openocd -s scripts -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c &amp;quot;adapter speed 5000; program NewFirmware.bin verify reset exit 0x10000000&amp;quot;&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=File:Swd_connector.png&amp;diff=38461</id>
		<title>File:Swd connector.png</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=File:Swd_connector.png&amp;diff=38461"/>
		<updated>2026-02-14T15:26:09Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Serial Wire Debug header populated. This cable leads to a Pi Debug Probe&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=File:FPGA_Manager_Benchmark.png&amp;diff=38460</id>
		<title>File:FPGA Manager Benchmark.png</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=File:FPGA_Manager_Benchmark.png&amp;diff=38460"/>
		<updated>2026-02-14T15:15:21Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Provides booting time comparisons according to the strategy in bringing a core file to the FPGA&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Raspberry_Pi_Pico_Update&amp;diff=38459</id>
		<title>Raspberry Pi Pico Update</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Raspberry_Pi_Pico_Update&amp;diff=38459"/>
		<updated>2026-02-14T15:13:38Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Raspberry Pi Pico Update ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
There is an onboard RP2040 chip (pi pico). It is not present on the Jr2. It&#039;s responsible for the following things:&lt;br /&gt;
&lt;br /&gt;
* the bootloader procedure that loads the right core while booting the K2. &lt;br /&gt;
* it is also known as the &amp;quot;FPGA Manager&amp;quot;&lt;br /&gt;
* Contains the K2 LCD screen special bitmap to be shown at bootup&lt;br /&gt;
* Has modifiable code that can invite more features and possibly a faster bootup&lt;br /&gt;
&lt;br /&gt;
=== Preparing new pico flash files ===&lt;br /&gt;
&lt;br /&gt;
Check this [https://github.com/wildbitscomputing/fpga-manager fpga manager] repo from Cibee which can tweak and compile such files into .uf2. This project uses VSCode, the pico sdk and openocd in order to do everything.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a summary of the booting time gains that were accomplished by Cibee:&lt;br /&gt;
&lt;br /&gt;
[[File:Fpga Manager Benchmark.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
=== Opening the case ===&lt;br /&gt;
&lt;br /&gt;
You can refer to this section to learn how you can be [[Opening_the_F256K_case]]&lt;br /&gt;
&lt;br /&gt;
=== Flashing using the onboard USB Header ===&lt;br /&gt;
&lt;br /&gt;
Here are the steps to follow:&lt;br /&gt;
[[File:Rp2040-cable.jpeg|thumb|Connector location, Switch S3 on the left, and cable orientation]]&lt;br /&gt;
Installation step:&lt;br /&gt;
&lt;br /&gt;
* Install Cable as above (F256K2 Powered Off)&lt;br /&gt;
* Plug Cable in any PC that holds the new programming file.&lt;br /&gt;
* Keep 1 finger on the button&lt;br /&gt;
* Power the F256K2&lt;br /&gt;
* A new folder will appear on the PC&#039;s Desktop&lt;br /&gt;
* Drop the new .uf2 file in the newly appeared folder.&lt;br /&gt;
* Power off F256K2&lt;br /&gt;
* Remove cable&lt;br /&gt;
* Reinstall the system as your heart&#039;s desire&lt;br /&gt;
* Power On the unit&lt;br /&gt;
* RP2040 is updated and running (because you need it to boot the unit)&lt;br /&gt;
* Bob&#039;s your uncle!&lt;br /&gt;
&lt;br /&gt;
=== Flashing using the onboard SWD Header ===&lt;br /&gt;
&lt;br /&gt;
SWD: Serial Wire Debug. This other pin header is a second way to update your flash and gives a little more flexibility to do it piece by piece by flashing .bin at specific flash locations or .elf in one go.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll need either:&lt;br /&gt;
&lt;br /&gt;
* a [https://www.raspberrypi.com/documentation/microcontrollers/debug-probe.html Pi Debug Probe] which comes with the necessary cable that leads to 3 female Dupont endings needed here&lt;br /&gt;
* openocd tool from PicoSDK v1.5.1 or more recent&lt;br /&gt;
* a prepared .bin file with updated code. &lt;br /&gt;
* a conversion tool to convert .uf2 to .bin, you can use this website https://polpo.org/tmp/uf2-to-bin.html or other known tools in the pico community&lt;br /&gt;
* the key step is to use openocd like so: openocd -s scripts -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c &amp;quot;adapter speed 5000; program NewFirmware.bin verify reset exit 0x10000000&amp;quot;&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=File:Fpga_Manager_Benchmark.png&amp;diff=38458</id>
		<title>File:Fpga Manager Benchmark.png</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=File:Fpga_Manager_Benchmark.png&amp;diff=38458"/>
		<updated>2026-02-14T15:13:17Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;describes booting times in relation to the strategy of getting fpga cores to the fpga&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Firmware&amp;diff=38457</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Firmware&amp;diff=38457"/>
		<updated>2026-02-14T14:59:22Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: moving the RP2040 firmware to its own hardware maintenance page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== System Flash ROM ==&lt;br /&gt;
The Foenix F256K, Jr., K2 and Jr2 computers contain 512K of flash memory which is intended to store software which should be available to the user without any media like SD-cards or IEC drives present. Think of it like a space traditionally occupied by ROM chips of 80&#039;s computers containing critical, often used programs and routines, but instead of being very rarely updated with scarce ROM chip revisions, it can be quickly updated with firmware revisions using the FoenixMgr python scripts.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important Note&#039;&#039;&#039;: for the F256K2, each core has its own dedicated area of 512K of flash memory. When switching to a new core, a separate dedicated area of 512K exists for that core and there&#039;s an expectation that the process of flashing the firmware has to be done for it.   &lt;br /&gt;
&lt;br /&gt;
This collection of software can be changed by the user by simply reprogramming the flash &amp;quot;ROM&amp;quot;. At the moment (2025+) the following applications are stored in flash as a default loadout: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Collection of 6502/65816 firmware programs as of firmware release version 2025.13&lt;br /&gt;
!Absolute Block* in Memory Map&lt;br /&gt;
!Block* Offset in onboard Flash&lt;br /&gt;
!Name of program&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x40&lt;br /&gt;
|0x00&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;reserved&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x41&lt;br /&gt;
|0x01&lt;br /&gt;
|xdev&lt;br /&gt;
|trampoline program meant to react to developper scripts from [[FoenixMgr]]: pcopy, runpgz, runpgx&lt;br /&gt;
|-&lt;br /&gt;
|0x42 to 0x45&lt;br /&gt;
|0x02 to 0x05&lt;br /&gt;
|superbasic&lt;br /&gt;
|if xdev has nothing to react to, superbasic is your default startup program&lt;br /&gt;
|-&lt;br /&gt;
|0x46&lt;br /&gt;
|0x06&lt;br /&gt;
|dos&lt;br /&gt;
|minimalistic file management and info shell&lt;br /&gt;
|-&lt;br /&gt;
|0x47&lt;br /&gt;
|0x07&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x48&lt;br /&gt;
|0x08&lt;br /&gt;
|fcart&lt;br /&gt;
|allows a user to flash the 256K Flast Cart with 8kb prepared blocks. See [[CartFlasher|this for usage]]&lt;br /&gt;
|-&lt;br /&gt;
|0x49&lt;br /&gt;
|0x09&lt;br /&gt;
|&#039;&#039;&#039;free&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x4A&lt;br /&gt;
|0x0A&lt;br /&gt;
|help&lt;br /&gt;
|text help on screen for superbasic programming&lt;br /&gt;
|-&lt;br /&gt;
|0x4B to 0x4E&lt;br /&gt;
|0x0B to 0x0E&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x4F&lt;br /&gt;
|0x0F&lt;br /&gt;
|wget&lt;br /&gt;
|web get, works only for gen1 K and Jr equipped with a feather wifi board&lt;br /&gt;
|-&lt;br /&gt;
|0x50 to 0x56&lt;br /&gt;
|0x10 to 0x16&lt;br /&gt;
|fm&lt;br /&gt;
|f/manager - a rather feature rich file manipulation, program launcher and memory exploration software&lt;br /&gt;
|-&lt;br /&gt;
|0x57&lt;br /&gt;
|0x17&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x58 to 0x5B&lt;br /&gt;
|0x18 to 0x1B&lt;br /&gt;
|mless&lt;br /&gt;
|moreorless - a text editor. See [[Moreorless|here for more information.]]&lt;br /&gt;
|-&lt;br /&gt;
|0x5D to 0x7B&lt;br /&gt;
|0x1D to 0x3B&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x7C to 0x7F&lt;br /&gt;
|0x3C to 0x3F&lt;br /&gt;
|microkernel&lt;br /&gt;
|the microkernel, gadget&#039;s masterpiece used by many programs&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Block: each block of flash memory is 8kb is size&lt;br /&gt;
&lt;br /&gt;
To reprogram the flash, you can start with the [https://github.com/FoenixRetro/f256-firmware/releases official firmware releases in this github.] &lt;br /&gt;
&lt;br /&gt;
This repo is part the [https://github.com/FoenixRetro FoenixRetro] Github organisation which in turn is an attempt to gather forks of all projects which are part of the firmware and other resources relevant for the Foenix F256 new retro computers.&lt;br /&gt;
&lt;br /&gt;
There are now two firmware loads available: Gen1 - for K and Jr and Gen2 - for K2 and Jr2. The only difference between these loads is the superbasic part of the firmware, in order to have a properly identified superbasic startup screen that reflects the exact computer and generation in the logo.&lt;br /&gt;
&lt;br /&gt;
====== Video tutorial: ======&lt;br /&gt;
A part of a tutorial video covers updating the firmware as a follow up step to updating the FPGA core, check it at 6:45 and on. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;pOab0ocKqac&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 6809 firmware: ====&lt;br /&gt;
This core has specialized firmware - it is best to ask around in the appropriate channels of the [https://discord.gg/9vjUEGgcUS Foenix discord].&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Raspberry_Pi_Pico_Update&amp;diff=38456</id>
		<title>Raspberry Pi Pico Update</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Raspberry_Pi_Pico_Update&amp;diff=38456"/>
		<updated>2026-02-11T05:09:16Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Raspberry Pi Pico Update ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
There is an onboard RP2040 chip (pi pico). It is not present on the Jr2. It&#039;s responsible for the following things:&lt;br /&gt;
&lt;br /&gt;
* the bootloader procedure that loads the right core while booting the K2. &lt;br /&gt;
* it is also known as the &amp;quot;FPGA Manager&amp;quot;&lt;br /&gt;
* Contains the K2 LCD screen special bitmap to be shown at bootup&lt;br /&gt;
* Has modifiable code that can invite more features and possibly a faster bootup&lt;br /&gt;
&lt;br /&gt;
=== Opening the case ===&lt;br /&gt;
&lt;br /&gt;
You can refer to this section to learn how you can be [[Opening_the_F256K_case]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Finding the right header and connecting a cable ===&lt;br /&gt;
&lt;br /&gt;
Here are the steps to follow:&lt;br /&gt;
&lt;br /&gt;
* Find the right .uf2 file from this github repo https://github.com/wildbitscomputing/fpga-manager&lt;br /&gt;
* Find the red circled header for USB&lt;br /&gt;
* Use the provided USBA to female dupont connector cable you should have received with your K2 kit upon purchase. These fairly standard cables can be found online if it needs to be replaced&lt;br /&gt;
* While the K2 is powered off, hold the BOOTSEL button nearby and plug the cable into your modern computer&lt;br /&gt;
* When a special drive pops up on your modern computer, drag and drop the .uf2 replacement image for the pico into that drive - it will auto-dismount and perform the update.&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Raspberry_Pi_Pico_Update&amp;diff=38455</id>
		<title>Raspberry Pi Pico Update</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Raspberry_Pi_Pico_Update&amp;diff=38455"/>
		<updated>2026-02-11T05:09:04Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Raspberry Pi Pico Update ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
There is an onboard RP2040 chip (pi pico). It is not present on the Jr2. It&#039;s responsible for the following things:&lt;br /&gt;
&lt;br /&gt;
* the bootloader procedure that loads the right core while booting the K2. &lt;br /&gt;
* it is also known as the &amp;quot;FPGA Manager&amp;quot;&lt;br /&gt;
* Contains the K2 LCD screen special bitmap to be shown at bootup&lt;br /&gt;
* Has modifiably code that can invite more features and possibly a faster bootup&lt;br /&gt;
&lt;br /&gt;
=== Opening the case ===&lt;br /&gt;
&lt;br /&gt;
You can refer to this section to learn how you can be [[Opening_the_F256K_case]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Finding the right header and connecting a cable ===&lt;br /&gt;
&lt;br /&gt;
Here are the steps to follow:&lt;br /&gt;
&lt;br /&gt;
* Find the right .uf2 file from this github repo https://github.com/wildbitscomputing/fpga-manager&lt;br /&gt;
* Find the red circled header for USB&lt;br /&gt;
* Use the provided USBA to female dupont connector cable you should have received with your K2 kit upon purchase. These fairly standard cables can be found online if it needs to be replaced&lt;br /&gt;
* While the K2 is powered off, hold the BOOTSEL button nearby and plug the cable into your modern computer&lt;br /&gt;
* When a special drive pops up on your modern computer, drag and drop the .uf2 replacement image for the pico into that drive - it will auto-dismount and perform the update.&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Raspberry_Pi_Pico_Update&amp;diff=38454</id>
		<title>Raspberry Pi Pico Update</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Raspberry_Pi_Pico_Update&amp;diff=38454"/>
		<updated>2026-02-11T05:03:49Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: Created page with &amp;quot;== Raspberry Pi Pico Update ==  === Overview ===  There is an onboard RP2040 chip (pi pico). It is not present on the Jr2. It&amp;#039;s responsible for the following things:  * the bootloader procedure that loads the right core while booting the K2.  * it is also known as the &amp;quot;FPGA Manager&amp;quot; * Contains the K2 LCD screen to be shown at bootup  * Has modifiably code that can invite more features and possibly a faster bootup  === Opening the case ===  You can refer to this section t...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Raspberry Pi Pico Update ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
There is an onboard RP2040 chip (pi pico). It is not present on the Jr2. It&#039;s responsible for the following things:&lt;br /&gt;
&lt;br /&gt;
* the bootloader procedure that loads the right core while booting the K2. &lt;br /&gt;
* it is also known as the &amp;quot;FPGA Manager&amp;quot;&lt;br /&gt;
* Contains the K2 LCD screen to be shown at bootup &lt;br /&gt;
* Has modifiably code that can invite more features and possibly a faster bootup&lt;br /&gt;
&lt;br /&gt;
=== Opening the case ===&lt;br /&gt;
&lt;br /&gt;
You can refer to this section to learn how you can be [[Opening_the_F256K_case]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Finding the right header and connecting a cable ===&lt;br /&gt;
&lt;br /&gt;
Here are the steps to follow:&lt;br /&gt;
&lt;br /&gt;
* Find the right .uf2 file from this github repo https://github.com/wildbitscomputing/fpga-manager&lt;br /&gt;
* Find the red circled header for USB&lt;br /&gt;
* Use the provided USBA to female dupont connector cable you should have received with your K2 kit upon purchase. These fairly standard cables can be found online if it needs to be replaced&lt;br /&gt;
* While the K2 is powered off, hold the BOOTSEL button nearby and plug the cable into your modern computer&lt;br /&gt;
* When a special drive pops up on your modern computer, drag and drop the .uf2 replacement image for the pico into that drive - it will auto-dismount and perform the update.&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Template:Main2/System_Maintenance&amp;diff=38453</id>
		<title>Template:Main2/System Maintenance</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Template:Main2/System_Maintenance&amp;diff=38453"/>
		<updated>2026-02-11T04:53:28Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: pi pico page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;System Maintenance&#039;&#039;&#039;&lt;br /&gt;
* [[FPGA Releases]]&lt;br /&gt;
* [[Kernel &amp;amp; SuperBASIC Updates]]&lt;br /&gt;
* [[Optional Upgrades]]&lt;br /&gt;
* [[Raspberry Pi Pico Update]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
* [[Wiznet]]&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Kernel_%26_SuperBASIC_Updates&amp;diff=38440</id>
		<title>Kernel &amp; SuperBASIC Updates</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Kernel_%26_SuperBASIC_Updates&amp;diff=38440"/>
		<updated>2026-02-01T20:38:30Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: better instructions with gen2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Kernel and/or SuperBASIC Update Links ==&lt;br /&gt;
 &lt;br /&gt;
Most people will prefer to rely on curated, prepared firmware collection to flash the whole flash memory blocks all at once, using a community driven firmware release that will routinely also improve superbasic and the Micro-Kernal, among other things. This is what most people will prefer to use.&lt;br /&gt;
&lt;br /&gt;
Here is a complete package of both latest instances (Scripts &amp;amp; bulk.csv files included as well as the foenixmgr utilities to perform the flash), check the &#039;&#039;&#039;Releases&#039;&#039;&#039; page of the following link:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/FoenixRetro/f256-firmware Complete Package Kernal+SuperBASIC+Apps Link]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If, for some reason, you really want to modify certain parts of the firmware in flash, you could do so piecewise by replacing only the superbasic or only the Micro-Kernel flash blocks. For the vast majority of users, this is NOT needed.&lt;br /&gt;
&lt;br /&gt;
Here are the GitHub Links where you will find the latest F256K / F256Jr Micro-Kernel load and/or SuperBASIC:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/ghackwrench/F256_MicroKernel F256x Micro-Kernel Github Link]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/paulscottrobson/superbasic/releases F256x SuperBASIC Github Link]&lt;br /&gt;
&lt;br /&gt;
== USB Port ==&lt;br /&gt;
&lt;br /&gt;
=== F256 Jr. / F256K ===&lt;br /&gt;
You will need to have the XR21B1411 USB Driver for PC/Linux. The MAC is outdated.  (Note: Driver is not needed for the F256K2) &lt;br /&gt;
[https://www.maxlinear.com/product/interface/uarts/usb-uarts/xr21b1411]&lt;br /&gt;
&lt;br /&gt;
=== F256K2 ===&lt;br /&gt;
On the F256K2 the XR21B1411 has been replaced by a FT4232, to allow direct use as a JTAG controller for the FPGA.  There are 3 virtual serial ports (channels) enabled.  The first connected to the Raspberry PI Nano (on-board) that manages the FPGA loading, the second one is the Debug port, and the third one is the system UART. This means that you only use a data supporting USB-C cable running from a modern computer to the back of the K2, no need for a specialty cable, nor a specialty adapter.&lt;br /&gt;
&lt;br /&gt;
Therefore, on a F256K2 you want to select the second COM port that gets added to your system.  As an example, on one Windows 10 system, the F256K2 USB-C connection added ports COM5, COM6 and COM7.  All three coming up just as generic FTDI manufacturer USB ports.&lt;br /&gt;
&lt;br /&gt;
=== Update batch file to point at correct port ===&lt;br /&gt;
To perform a full Kernel &amp;amp; SuperBASIC update, I simply downloaded the Complete Package (above) and edited the update.bat batch file to instead specify my system&#039;s COM6 (i.e. the 2nd added Port).  &lt;br /&gt;
&lt;br /&gt;
== Links to Software needed to do update with FoenixMgr (Python Script) ==&lt;br /&gt;
Python&lt;br /&gt;
[https://www.python.org/]&lt;br /&gt;
&lt;br /&gt;
PySerial&lt;br /&gt;
[https://pyserial.readthedocs.io/en/latest/]&lt;br /&gt;
&lt;br /&gt;
Foenix Manager (Collection of Python Scripts to use the USB Debug port)&lt;br /&gt;
[https://github.com/pweingar/FoenixMgr]&lt;br /&gt;
&lt;br /&gt;
== Kernel and/or SuperBASIC Update Guide ==&lt;br /&gt;
&lt;br /&gt;
Below, is a short video on how to install the software you will need to be able to reflash your Kernel and/or SuperBASIC. &lt;br /&gt;
&lt;br /&gt;
==== How to Update your F256 Jr. / F256K Short ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;Zgyhy_cBsM8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== How to Update your F256 Jr2 / F256K2 Video ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;pOab0ocKqac&amp;lt;/youtube&amp;gt;&lt;br /&gt;
Starting at 6:46, this video dives into updating the firmware for a specific core (each core have their pocket of 512K of flash memory, not shared).&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=FPGA_Releases&amp;diff=38439</id>
		<title>FPGA Releases</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=FPGA_Releases&amp;diff=38439"/>
		<updated>2026-02-01T20:29:51Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* How to Upgrade the FPGA for the F256K2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# move the FG &amp;amp; BG Text LUT to:&lt;br /&gt;
&lt;br /&gt;
=== Important: ===&lt;br /&gt;
Most users will want to consume the &amp;quot;Firmware package relases&amp;quot; (taken from here: https://github.com/FoenixRetro/f256-firmware/releases. )  which contain both the latest of the FPGA releases seen here on this page, and the kernel/base programs intended for the flash memory. The page you&#039;re ready here is meant for power user who would want to test back compatibility or attempt some roll-backs in case bugs are found, and for readers who want to learn about the release notes of each new FPGA version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(* &amp;quot;Purple&amp;quot; refers to the official 2025+ release of the K2; &amp;quot;Black&amp;quot; refers to the first run of K2B boards sent out to the original F256K owners in late 2024)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Latest FPGA core files for all platforms ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
==== &amp;lt;big&amp;gt;F256Jr2&amp;lt;/big&amp;gt; ====&lt;br /&gt;
!&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
==== &amp;lt;big&amp;gt;F256K2&amp;lt;/big&amp;gt; ====&lt;br /&gt;
|-&lt;br /&gt;
!Core&lt;br /&gt;
!Link&lt;br /&gt;
!Notes&lt;br /&gt;
!&lt;br /&gt;
!Core&lt;br /&gt;
!Link&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/Jr2/Classic/2025-01-07/F256Jr2_MMU_Jan8th_2025_OPL3.mcs 08-Jan-2025]&lt;br /&gt;
|OPL3 added&lt;br /&gt;
!&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|Black*: [https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/K2/CNTX1/2025-02-02/CFP95600C.bin 02-Feb-2025]&lt;br /&gt;
Purple*: [https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K2Purple/CNTX1/CFP95600C.bin 05-Feb-2025]&lt;br /&gt;
|fix Onboard Access to a SPI Flash&lt;br /&gt;
LCD Splash Screen&lt;br /&gt;
|-&lt;br /&gt;
|65816 Ext&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/Jr2/Extended/2024-12-21/F256Jr2_Ext16_Dec21st_2024.mcs 21-Dec-2025]&lt;br /&gt;
|Implementation of the 256Bytes&lt;br /&gt;
Copy from Flash to RAM before booting.&lt;br /&gt;
!&lt;br /&gt;
|65816 Ext&lt;br /&gt;
|Black*: [https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/K2/CNTX2/2025-01-07/CFP95616E.bin 07-Jan-2025]&lt;br /&gt;
Purple*: [https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K2Purple/CNTX2/CFP95616E.bin 06-Jan-2025]&lt;br /&gt;
|Updated access to WS6100&lt;br /&gt;
UART for the VS1053B&lt;br /&gt;
|-&lt;br /&gt;
|65816 Ext 2x&lt;br /&gt;
|[https://c256foenix.com/product-category/gen2-core/?v=5435c69ed3bc Buy Here]&lt;br /&gt;
|2x CPU speed&lt;br /&gt;
layer of 16 bit colored text&lt;br /&gt;
&lt;br /&gt;
hardware line drawing&lt;br /&gt;
&lt;br /&gt;
64 more sprites.&lt;br /&gt;
!&lt;br /&gt;
|65816 Ext 2x&lt;br /&gt;
|Black*: [https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K2/CNTX4/F256K2x_Cores_Foenix138_BlackBoard_B3B_July27th_2025.bin 27-Jul-2025]&lt;br /&gt;
Purple*: [https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K2/CNTX4/F256K2x_Cores_Foenix138_B0C_August4th_2025.bin 4-Aug-2025]&lt;br /&gt;
|2x CPU speed&lt;br /&gt;
layer of 16 bit colored text&lt;br /&gt;
&lt;br /&gt;
hardware line drawing&lt;br /&gt;
&lt;br /&gt;
64 more sprites.&lt;br /&gt;
|-&lt;br /&gt;
|6809&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/Jr2/6809/2025-06-15/F256JrJr_FNX6809_June14th_RC0014_0003.mcs 15-Jun-2025]&lt;br /&gt;
|WIFI Speed and Interface (added TX_Empty &amp;amp; RX_Empty Flag)&lt;br /&gt;
!&lt;br /&gt;
|6809&lt;br /&gt;
|Black*: [https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K2/CNTX3/NitrOS9_Load_BlackBoardB3B_WifiFixed_Sept4th.bin 04-Sep-2025]&lt;br /&gt;
Purple*: [https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K2Purple/CNTX3/NitrOS9_Load_PurpleBoardB0C_WifiFixed_Sept4th.bin 04-Sep-2025]&lt;br /&gt;
|Wifi fix&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
==== &amp;lt;big&amp;gt;F256Jr&amp;lt;/big&amp;gt; ====&lt;br /&gt;
!&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
==== &amp;lt;big&amp;gt;F256K&amp;lt;/big&amp;gt; ====&lt;br /&gt;
|-&lt;br /&gt;
!Core&lt;br /&gt;
!Link&lt;br /&gt;
!Notes&lt;br /&gt;
!&lt;br /&gt;
!Core&lt;br /&gt;
!Link&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/Jr/Classic/F256M_Wbh_Jan26th_2025_RC20_0100.jic 26-Jan-2025]&lt;br /&gt;
|fixes Overlay FONT on top of graphic &lt;br /&gt;
with Background Color Enabled&lt;br /&gt;
!&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/K/F256Kc_WBh_Jan26th_2025_RC16_0001.jic 26-Jan-2025]&lt;br /&gt;
|fixes Overlay FONT on top of graphic &lt;br /&gt;
with Background Color Enabled&lt;br /&gt;
|-&lt;br /&gt;
|65816 Ext 2x&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/Jr/Extended/F256M_Wbh_Jun24th_2025_RC0100_0002.jic 24-Jun-2025]&lt;br /&gt;
|Fixed bugs with register 0x0000 and 0x0001&lt;br /&gt;
!&lt;br /&gt;
|65816 Ext 2x&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K/F256Kc_WBh_Jun23th_RC0100_0003_DualSpeed_CPU.jic 23-Jun-2025]&lt;br /&gt;
|Fixed bugs with register 0x0000 and 0x0001&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Previous FPGA core files for all platforms ===&lt;br /&gt;
Use these for testing out older softwares and snooping around for persistant issues.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
==== &amp;lt;big&amp;gt;Previous F256Jr2 Cores&amp;lt;/big&amp;gt; ====&lt;br /&gt;
|-&lt;br /&gt;
!Core&lt;br /&gt;
!Link&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|6809&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/Jr2/6809/2025-06-13/F256Jr2_FNX6809_June13th_RC0017_0002.mcs 13-Jun-2025]&lt;br /&gt;
|Move the FG &amp;amp; BG Text LUT to: &lt;br /&gt;
&lt;br /&gt;
$18_3800        $18_383F            TEXT_LUT_FG&lt;br /&gt;
&lt;br /&gt;
$18_3840        $18_387F            TEXT_LUT_BG&lt;br /&gt;
|-&lt;br /&gt;
|6809&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/Jr2/6809/2025-06-11/F256Jr2_FNX6809_June11th_RC0017_0000.mcs 11-Jun-2025]&lt;br /&gt;
|big Wishlist&lt;br /&gt;
full access to write back the onboard flash&lt;br /&gt;
|-&lt;br /&gt;
|6809&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/Jr2/6809/2025-01-17/F256Jr2_FNX6809_Jan17th_RC0014_0002.mcs 17-Jan-2025]&lt;br /&gt;
|Fix for the manual Reset&lt;br /&gt;
Fix for the readback of Multiplication Values&lt;br /&gt;
&lt;br /&gt;
Endianess&lt;br /&gt;
&lt;br /&gt;
Changes to: Line/Pixel Position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
==== &amp;lt;big&amp;gt;Previous&amp;lt;/big&amp;gt; &amp;lt;big&amp;gt;F256K2&amp;lt;/big&amp;gt; &amp;lt;big&amp;gt;Cores&amp;lt;/big&amp;gt; ====&lt;br /&gt;
|-&lt;br /&gt;
!Core&lt;br /&gt;
!Link&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|Black*: [https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/K2/CNTX1/2025-01-08/CFP95600C.bin 08-Jan-2025]&lt;br /&gt;
Purple*: n/a &lt;br /&gt;
|OPL3 implemented&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|Black*: [https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/K2/CNTX1/2025-01-07/CFP95600C.bin 07-Jan-2025]&lt;br /&gt;
Purple*: n/a&lt;br /&gt;
|Instantiation of the UART for the VS1053B @ $DDB0&lt;br /&gt;
|-&lt;br /&gt;
|6809&lt;br /&gt;
|Black*: [https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K2/CNTX3/K2_NitrOS9_Load_BlackBoard_Aug26th.bin 26-Aug-2025]&lt;br /&gt;
Purple*: [https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K2Purple/CNTX3/FNX6809_First_Release_Aug24th_PurpleBoard.bin 24-Aug-2025]&lt;br /&gt;
|This is the preliminary version and only works with a PS/2 keyboard plugged in.&lt;br /&gt;
If destined for slot 3, rename the file and put in CNTX3/f256k2t9.bin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
==== &amp;lt;big&amp;gt;Previous F256Jr Cores&amp;lt;/big&amp;gt; ====&lt;br /&gt;
|-&lt;br /&gt;
!Core&lt;br /&gt;
!Link&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/Jr/Classic/F256M_Wbh_Dec23rd_2023_RC18_0100.jic 23-Dec-2023]&lt;br /&gt;
|Tiles fix; shifted by one towards the left. &lt;br /&gt;
(0100 = Serial RAM/Flash Select)&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/Jr/Classic/F256M_Wbh_Nov18th_2023_RC17_0100.jic 18-Nov-2023]&lt;br /&gt;
|In light of decision to dump the big ticket items and the accessories from the store...&lt;br /&gt;
&lt;br /&gt;
* Removed the very SPI core introduced yesterday to drive the FNXNET51 module.&lt;br /&gt;
* Removed the DP memory for the MMU and replace it back with simple Registers, which means that when you reset the system, the MMU, Page0 will be reset back to the way it was. However, the caveat is that if you change between RAM to FLASH MMU default value, you need to do a reset, either a debug reset or General Reset because the MMU is now only 32bytes in Size, so, 4 pages of 8 values.&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/Jr/Classic/F256M_WBh_Nov17th_2023_RC16_0111.jic 17-Nov-2023]&lt;br /&gt;
|&lt;br /&gt;
* No Write Allowed when Debug Port writes in the MMU Memory Zone&lt;br /&gt;
* Incorporation of a new SPI Controller to interface with the FNXNET51 module using the NES/SNES MiniDin9 Connector&lt;br /&gt;
* ReSync of the Debug Generated RDY to stop the CPU. (untested)&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/tree/main/fpga/Jr/Classic various older]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|65816 Ext 2x&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/Jr/Extended/F256M_Wbh_Jun17th_2025_RC0100_0001.jic 16-Jun-2025]&lt;br /&gt;
|CPU runs at 2x speed at 12 MHz&lt;br /&gt;
MUST use a 65816 cpu chip, &lt;br /&gt;
&lt;br /&gt;
will not work with the 6502&lt;br /&gt;
|-&lt;br /&gt;
|6809&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
==== &amp;lt;big&amp;gt;Previous&amp;lt;/big&amp;gt; &amp;lt;big&amp;gt;F256K&amp;lt;/big&amp;gt; &amp;lt;big&amp;gt;Cores&amp;lt;/big&amp;gt; ====&lt;br /&gt;
|-&lt;br /&gt;
!Core&lt;br /&gt;
!Link&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/K/2024-12-23/F256K_WBh_Dec23rd_RevB0x_RC14_0000.jic 23-Dec-2023]&lt;br /&gt;
  &lt;br /&gt;
|Tiles fix; shifted by one towards the left. &lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/K/F256K_WBh_Dec9th_RevB0x_RC13_0000.jic 09-Dec-2023]&lt;br /&gt;
|&lt;br /&gt;
* Fixes a problem with Interrupt from timer0 that was working on the Jr.&lt;br /&gt;
* Resolves a discrepancy between the F256Jr interrupt block and the F256K.&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/K/F256K_WBh_Nov19th_RevB0x_RC12_0011.jic 19-Nov-2023]&lt;br /&gt;
|Corrects the issue with no-response from command $20 &amp;amp; $21 (not being processed in the early parser). The Jr doesn&#039;t have the issue.&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|various older&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|65816 Ext 2x&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K/F256Kc_WBh_Jun18th_2025_RC0100_0000_DualSpeed_CPU.jic 18-Jun-2025]&lt;br /&gt;
|CPU runs at 2x speed at 12 MHz&lt;br /&gt;
MUST use a 65816 cpu chip, &lt;br /&gt;
&lt;br /&gt;
will not work with the 6502&lt;br /&gt;
|-&lt;br /&gt;
|6809&lt;br /&gt;
|N/A yet&lt;br /&gt;
|N/A yet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---old version will be kept at the bottom for a while in case errors are found above---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== FPGA Upgrade Guide ==&lt;br /&gt;
&lt;br /&gt;
==== How to Upgrade the F256K FPGA (and F256Jr) ====&lt;br /&gt;
Note that the below Video Guide applies to both the F256K &amp;amp; F256Jr, despite it just being titled F256K.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;U7bq7t_qjxg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will need to download Quartus Prime Lite 18.1 Edition, since you are going to target a EP4CE15 FPGA (Cyclone 4).&lt;br /&gt;
&lt;br /&gt;
Do not update to the latest version of Quartus Prime Lite, as the latest version doesn’t support that family of FPGA anymore and the software is very big.&lt;br /&gt;
&lt;br /&gt;
Also, one might want to download only the &amp;quot;Intel® Quartus® Prime Programmer and Tools&amp;quot; as opposed to download the whole software by clicking on &amp;quot;Additional Software&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[https://www.intel.com/content/www/us/en/software-kit/665990/intel-quartus-prime-lite-edition-design-software-version-18-1-for-windows.html Intel Quartus Prime Lite Edition 18.1 for  Windows]&lt;br /&gt;
&lt;br /&gt;
[https://www.intel.com/content/www/us/en/software-kit/665988/intel-quartus-prime-lite-edition-design-software-version-18-1-for-linux.html Intel Quartus Prime Lite Edition 18.1 for Linux]&lt;br /&gt;
&lt;br /&gt;
==== How to Upgrade the FPGA for the F256K2 ====&lt;br /&gt;
It is possible that there will be more graceful methods in the future, but for now, the easiest is to pop off the uSD card found on the left side of the board marked &amp;quot;uSD Card / FPGA Load&amp;quot; and to replace the .bin files inside the directory of the root of that uSD card, using a modern computer.&lt;br /&gt;
&lt;br /&gt;
This is a video guide that covers both upgrade the FPGA cores of the K2 as well as updating the firmware once the FPGA is improved or installed for the first time:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;pOab0ocKqac&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will of course imply that you open up your case. [[Optional Upgrades#Opening the F256K case|There is a guide]] on how to do so for the original F256K enclosure. The F256K2 enclosure is similar. &lt;br /&gt;
&lt;br /&gt;
For those unfamiliar with the process of removing the uSD card from these slide-operation holders here is the process:&lt;br /&gt;
&lt;br /&gt;
1) very gently press down on the middle metal locking slider that goes across on top of the uSD card and slide it towards the left.&lt;br /&gt;
&lt;br /&gt;
2) the uSD card and its locking slider will now open up by rotating towards the left with a hinge on the left side&lt;br /&gt;
&lt;br /&gt;
Inside the root of this uSD card, there are four folders marked as CNTX# where # is a number from 1 to 4. Simply replace the .bin file therein to update any one given core. You may completely ignore .prm files since they do not affect the F256K2.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Folder&lt;br /&gt;
!Hard coded file name&lt;br /&gt;
!Typical* usage&lt;br /&gt;
!CPU in the FPGA&lt;br /&gt;
|-&lt;br /&gt;
|CNTX1&lt;br /&gt;
|CFP95600C.bin&lt;br /&gt;
|F256 Classic mode with a memory management unit (MMU), where the CPU sees 64k at once&lt;br /&gt;
|65816 acting as 6502&lt;br /&gt;
|-&lt;br /&gt;
|CNTX2&lt;br /&gt;
|CFP95616E.bin&lt;br /&gt;
|F256 Extended mode with a flat memory map all accessible at once&lt;br /&gt;
|65816&lt;br /&gt;
|-&lt;br /&gt;
|CNTX3&lt;br /&gt;
|f256k2t9.bin&lt;br /&gt;
|F256 with the 6809 core (planned) or 68000 core (planned)&lt;br /&gt;
|6809&lt;br /&gt;
|-&lt;br /&gt;
|CNTX4&lt;br /&gt;
|foenix138.bin&lt;br /&gt;
|F256 with 2x CPU speed Extended mode with a flat memory map all accessible at once&lt;br /&gt;
|65816&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== Note* on typical usage ======&lt;br /&gt;
As long as you keep the proper hard coded names tied to their folder names, you can slide any core to any slot. For example, if you want the 2x core to be in the CTNX2 folder, just rename it appropriately to CFP95616E.bin as you put it into CTNX2/.&lt;br /&gt;
&lt;br /&gt;
====== F256K2 core prep steps: ======&lt;br /&gt;
&lt;br /&gt;
# Take care of placing the bin file in the FPGA load uSD card&lt;br /&gt;
# Set the core selecting DIP switches at the back of the unit. Down (towards bottom of the unit) = 0, Up (towards the upper side of the unit) = 1. See below for all possibilities.&lt;br /&gt;
# Power up the unit. If this is the first time you&#039;re using that core and you&#039;ve never done step 4 for it, it&#039;s normal to not have a properly booted initial software (ie superbasic or otherwise)&lt;br /&gt;
# Write the firmware to the content of the flash. Each of the 4 cores have their own 512kb of reserved flash space that are selected at the same time as the core itself from the uSD FPGA load card. Once they are written to, they are set for future usages as you switch between cores and won&#039;t require further flash writes, unless you&#039;re doing updates.&lt;br /&gt;
&lt;br /&gt;
====== Core selecting DIP switches in the back ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Core 1&lt;br /&gt;
!Core 2&lt;br /&gt;
!Core 3&lt;br /&gt;
!Core 4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:Core1.png|thumb]]&lt;br /&gt;
|&lt;br /&gt;
[[File:Core3.png|thumb]]&lt;br /&gt;
|&lt;br /&gt;
[[File:Core2.png|thumb]]&lt;br /&gt;
|&lt;br /&gt;
[[File:Core4.png|thumb]]&lt;br /&gt;
|-&lt;br /&gt;
|0 0&lt;br /&gt;
|1 0&lt;br /&gt;
|0 1&lt;br /&gt;
|1 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== How to Upgrade the FPGA for the F256Jr. the 2nd ====&lt;br /&gt;
Go look at this [[FPGA Upgrade Guide (F256JrJr)|guide here in the wiki]].&lt;br /&gt;
&lt;br /&gt;
=== Suggested USB Blaster (K and Jr. only) ===&lt;br /&gt;
&lt;br /&gt;
Earth People Technology&lt;br /&gt;
[https://www.amazon.ca/JTAG-Blaster-Intel-Altera-Programmer/dp/B07BZMSZ3G/ref=sr_1_3?crid=WWV8P0OHVCE3&amp;amp;keywords=altera+usb+blaster&amp;amp;qid=1688067039&amp;amp;sprefix=altera+usb+blaster%2Caps%2C113&amp;amp;sr=8-3]&lt;br /&gt;
[https://earthpeopletechnology.com/?wpsc-product=ept-2232h-sp-s1]&lt;br /&gt;
&lt;br /&gt;
Terasic USB Blaster (low cost version)&lt;br /&gt;
[https://www.digikey.ca/en/products/detail/terasic-inc/P0302/2003484]&lt;br /&gt;
[https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=&amp;amp;No=46#contents]&lt;br /&gt;
&lt;br /&gt;
Chinese Knockoff (please avoid if possible)&lt;br /&gt;
&lt;br /&gt;
=== Open Source blaster software (K and Jr. only) ===&lt;br /&gt;
&lt;br /&gt;
For those who are struggling to program the FPGA with Linux or Apple, Stef found this great tool:&lt;br /&gt;
&lt;br /&gt;
https://github.com/trabucayre/openFPGALoader/releases&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Use_the_SNES/NES_controllers&amp;diff=38438</id>
		<title>Use the SNES/NES controllers</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Use_the_SNES/NES_controllers&amp;diff=38438"/>
		<updated>2026-02-01T20:24:43Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: link to troubleshooting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== NES and SNES controllers ==&lt;br /&gt;
The F256 machines can use these controllers provided they are equipped with an optional FNX4N4S breakout adapter (website purchase link no longer active). &lt;br /&gt;
&lt;br /&gt;
The official gamepads of yesteryear work without issue with this and are plentiful in the used market. &lt;br /&gt;
&lt;br /&gt;
Third party modern recreations are sometimes flaky or not working at all. Share you discoveries in the discord! &lt;br /&gt;
&lt;br /&gt;
Super famicom gamepads work very well as substitute for regular SNES gamepads.&lt;br /&gt;
&lt;br /&gt;
If your FNX4N4S adapter box is not working reliably, go check how to resolve a potential issue in the [[Troubleshooting|Troubleshoot]] page.&lt;br /&gt;
[[File:Full complement of gamepads.png|thumb|A fully populated FNX4N4S for the F256K2]]&lt;br /&gt;
&lt;br /&gt;
=== Registers ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Register Name&lt;br /&gt;
!R/W&lt;br /&gt;
!Address&lt;br /&gt;
!NES/SNES&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|PAD_CTRL&lt;br /&gt;
|W&lt;br /&gt;
|0xD880&lt;br /&gt;
|both&lt;br /&gt;
|Used to trigger a reading and setting the NES/SNES mode&lt;br /&gt;
|-&lt;br /&gt;
|PAD_STAT&lt;br /&gt;
|R&lt;br /&gt;
|0xD880&lt;br /&gt;
|both&lt;br /&gt;
|Used to verify if the triggered polling of gamepad state is done yet&lt;br /&gt;
|-&lt;br /&gt;
|PAD0&lt;br /&gt;
|R&lt;br /&gt;
|0xD884&lt;br /&gt;
|both&lt;br /&gt;
|Buttons statuses: if cleared, they are pressed. If set, they are unpressed.&lt;br /&gt;
|-&lt;br /&gt;
|PAD0_S&lt;br /&gt;
|R&lt;br /&gt;
|0xD885&lt;br /&gt;
|SNES&lt;br /&gt;
|Same deal; unused by NES. Consult button table below&lt;br /&gt;
|-&lt;br /&gt;
|PAD1&lt;br /&gt;
|R&lt;br /&gt;
|0xD886&lt;br /&gt;
|both&lt;br /&gt;
|Buttons statuses: if cleared, they are pressed. If set, they are unpressed.&lt;br /&gt;
|-&lt;br /&gt;
|PAD1_S&lt;br /&gt;
|R&lt;br /&gt;
|0xD887&lt;br /&gt;
|SNES&lt;br /&gt;
|Same deal; unused by NES. Consult button table below&lt;br /&gt;
|-&lt;br /&gt;
|PAD2&lt;br /&gt;
|R&lt;br /&gt;
|0xD888&lt;br /&gt;
|both&lt;br /&gt;
|Buttons statuses: if cleared, they are pressed. If set, they are unpressed.&lt;br /&gt;
|-&lt;br /&gt;
|PAD2_S&lt;br /&gt;
|R&lt;br /&gt;
|0xD889&lt;br /&gt;
|SNES&lt;br /&gt;
|Same deal; unused by NES. Consult button table below&lt;br /&gt;
|-&lt;br /&gt;
|PAD3&lt;br /&gt;
|R&lt;br /&gt;
|0xD88A&lt;br /&gt;
|both&lt;br /&gt;
|Buttons statuses: if cleared, they are pressed. If set, they are unpressed.&lt;br /&gt;
|-&lt;br /&gt;
|PAD3_S&lt;br /&gt;
|R&lt;br /&gt;
|0xD88B&lt;br /&gt;
|SNES&lt;br /&gt;
|Same deal; unused by NES. Consult button table below&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Control register ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Register Name&lt;br /&gt;
!R/W&lt;br /&gt;
!Address&lt;br /&gt;
!Bit7&lt;br /&gt;
!Bit6&lt;br /&gt;
!Bit5&lt;br /&gt;
!Bit4&lt;br /&gt;
!Bit3&lt;br /&gt;
!Bit2&lt;br /&gt;
!Bit1&lt;br /&gt;
!Bit0&lt;br /&gt;
|-&lt;br /&gt;
|PAD_CTRL&lt;br /&gt;
|W&lt;br /&gt;
|0xD880&lt;br /&gt;
|NES_TRIG&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|MODE&lt;br /&gt;
| -&lt;br /&gt;
|EN&lt;br /&gt;
|-&lt;br /&gt;
|PAD_STAT&lt;br /&gt;
|R&lt;br /&gt;
|0xD880&lt;br /&gt;
|NES_TRIG&lt;br /&gt;
|DONE&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|MODE&lt;br /&gt;
| -&lt;br /&gt;
|EN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Control register bit states: ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Bit Name&lt;br /&gt;
!If set to 1&lt;br /&gt;
!If cleared to 0&lt;br /&gt;
|-&lt;br /&gt;
|NES_TRIG&lt;br /&gt;
|Launches the polling of the states of all buttons&lt;br /&gt;
|Stops polling the states of all buttons&lt;br /&gt;
|-&lt;br /&gt;
|DONE&lt;br /&gt;
|The states of the buttons are ready to be read&lt;br /&gt;
|The states of the buttons are not ready&lt;br /&gt;
|-&lt;br /&gt;
|MODE&lt;br /&gt;
|SNES data will be used to populate the PAD registers&lt;br /&gt;
|NES data will be used to populate the PAD registers&lt;br /&gt;
|-&lt;br /&gt;
|EN&lt;br /&gt;
|Enables the gamepads&lt;br /&gt;
|Disables the gamepads&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Button table ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!MODE&lt;br /&gt;
!NES/SNES&lt;br /&gt;
!Address&lt;br /&gt;
!Pad&lt;br /&gt;
!Bit7&lt;br /&gt;
!Bit6&lt;br /&gt;
!Bit5&lt;br /&gt;
!Bit4&lt;br /&gt;
!Bit3&lt;br /&gt;
!Bit2&lt;br /&gt;
!Bit1&lt;br /&gt;
!Bit0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|NES&lt;br /&gt;
|0xD884&lt;br /&gt;
|0&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|NES&lt;br /&gt;
|0xD886&lt;br /&gt;
|1&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|NES&lt;br /&gt;
|0xD888&lt;br /&gt;
|2&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|NES&lt;br /&gt;
|0xD88A&lt;br /&gt;
|3&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD884&lt;br /&gt;
|0&lt;br /&gt;
|B&lt;br /&gt;
|Y&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD885&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|A&lt;br /&gt;
|X&lt;br /&gt;
|L&lt;br /&gt;
|R&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD886&lt;br /&gt;
|1&lt;br /&gt;
|B&lt;br /&gt;
|Y&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD887&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|A&lt;br /&gt;
|X&lt;br /&gt;
|L&lt;br /&gt;
|R&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD888&lt;br /&gt;
|2&lt;br /&gt;
|B&lt;br /&gt;
|Y&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD889&lt;br /&gt;
|2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|A&lt;br /&gt;
|X&lt;br /&gt;
|L&lt;br /&gt;
|R&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD88A&lt;br /&gt;
|3&lt;br /&gt;
|B&lt;br /&gt;
|Y&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD88B&lt;br /&gt;
|3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|A&lt;br /&gt;
|X&lt;br /&gt;
|L&lt;br /&gt;
|R&lt;br /&gt;
|}&lt;br /&gt;
Note: L refers to the left shoulder button and R refers to the right shoulder button.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
Example 1: polling a NES controller in PAD0 position and checking if A is pressed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POKE(PAD_CTRL, 0b10000001); //trigger, nes mode, enabled&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
POKE(PAD_CTRL, 0b00000001); //clear trigger&lt;br /&gt;
while((PEEK(PAD_STAT) &amp;amp; 0x40) == 0) //loop while this bit is cleared&lt;br /&gt;
      ;&lt;br /&gt;
if((PEEK(PAD0) &amp;amp; 0x80) == 0) reactToAPressed();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2: polling a SNES controller in PAD2 position and checking if X is pressed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POKE(PAD_CTRL, 0b10000101); //trigger, snes mode, enabled&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
POKE(PAD_CTRL, 0b00000101); //clear trigger&lt;br /&gt;
while((PEEK(PAD_STAT) &amp;amp; 0x40) == 0) //loop while this bit is cleared&lt;br /&gt;
      ;&lt;br /&gt;
if((PEEK(PAD2_S) &amp;amp; 0x04) == 0) reactToXPressed();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 3: polling both types of controller in rapid succession (allows the usage of all 8 controllers!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//NES section&lt;br /&gt;
POKE(PAD_CTRL, 0b10000001); //trigger, nes mode, enabled&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
POKE(PAD_CTRL, 0b00000001); //clear trigger&lt;br /&gt;
while((PEEK(PAD_STAT) &amp;amp; 0x40) == 0) //loop while this bit is cleared&lt;br /&gt;
      ;&lt;br /&gt;
//section where reactions are made to the various NES presses&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//SNES section&lt;br /&gt;
POKE(PAD_CTRL, 0b10000101); //trigger, snes mode, enabled&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
POKE(PAD_CTRL, 0b00000101); //clear trigger&lt;br /&gt;
while((PEEK(PAD_STAT) &amp;amp; 0x40) == 0) //loop while this bit is cleared&lt;br /&gt;
      ;&lt;br /&gt;
//section where reactions are made to the various SNES presses&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Source code example in C: ===&lt;br /&gt;
Check out this simple example displaying the statuses of all 4 NES pads on screen, using hex: https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NES/src&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Troubleshooting&amp;diff=38437</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Troubleshooting&amp;diff=38437"/>
		<updated>2026-02-01T20:22:18Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== TroubleShooting ==&lt;br /&gt;
&lt;br /&gt;
=== General issues ===&lt;br /&gt;
* &#039;&#039;&#039;Sometimes, when turning on the F256K/Jr, I get greeted with this screen, from which nothing can happen. How do you resolve this and why does this happen?&#039;&#039;&#039;[[File:Microkernel boot screen.png|thumb|Microkernel boot screen]]&lt;br /&gt;
* Every time you are powering off and on your unit, the FPGA needs to reprogram itself and that takes time (i.e. Not Instantaneous). It&#039;s possible to have faulty loading because the power supply is not quite stable; the RTC that generates the reset is not aligned with the rest of the system. If you are doing a quick on and off, the capacitors are not empty enough to create a rising power rail so the reset can do its things. Unfortunately those are not ASICs, so nothing is instantaneous.&lt;br /&gt;
&lt;br /&gt;
=== FNX4N4S issues ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Can&#039;t seem to make the gamepad work reliably, or one button press affects multiple buttons and triggers at once&#039;&#039;&#039;&lt;br /&gt;
* After the first batch of these in 2023, the cabling changed and the differing wire colors induced some errors in the wiring inside the FNX4N4S case. The solution is to follow @Cibee&#039;s work and make sure you tie these 2 sets of pins the right way:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!FNX4N4S pins inside, &lt;br /&gt;
marked CN1&lt;br /&gt;
!DIN9 pins outside the cable, &lt;br /&gt;
while facing the pins&lt;br /&gt;
!original 2023 run wire colors&lt;br /&gt;
!latest 2024-5 run wire colors&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|blue&lt;br /&gt;
|blue&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|6&lt;br /&gt;
|red&lt;br /&gt;
|red&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|white&lt;br /&gt;
|green&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|7&lt;br /&gt;
|brown&lt;br /&gt;
|brown&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|3&lt;br /&gt;
|green&lt;br /&gt;
|orange&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|8&lt;br /&gt;
|purple&lt;br /&gt;
|purple&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|4&lt;br /&gt;
|orange&lt;br /&gt;
|yellow&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|9&lt;br /&gt;
|black&lt;br /&gt;
|black&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|5&lt;br /&gt;
|yellow&lt;br /&gt;
|white&lt;br /&gt;
|}&lt;br /&gt;
[[File:Fnx4n4s inside.png|thumb|Inside the FNX4N4S adapter box with the top cover removed. CN1 is where the cable is soldered directly on the PCB.]]&lt;br /&gt;
[[File:Fnx4n4s realcable.png|thumb|Facing the pins of the DIN9 cable of the FNX4N4S adapter box, from the outside.]]&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Troubleshooting&amp;diff=38436</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Troubleshooting&amp;diff=38436"/>
		<updated>2026-02-01T20:19:35Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: fixed DIN9 image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== General issues ===&lt;br /&gt;
* &#039;&#039;&#039;Sometimes, when turning on the F256K/Jr, I get greeted with this screen, from which nothing can happen. How do you resolve this and why does this happen?&#039;&#039;&#039;[[File:Microkernel boot screen.png|thumb|Microkernel boot screen]]&lt;br /&gt;
* Every time you are powering off and on your unit, the FPGA needs to reprogram itself and that takes time (i.e. Not Instantaneous). It&#039;s possible to have faulty loading because the power supply is not quite stable; the RTC that generates the reset is not aligned with the rest of the system. If you are doing a quick on and off, the capacitors are not empty enough to create a rising power rail so the reset can do its things. Unfortunately those are not ASICs, so nothing is instantaneous.&lt;br /&gt;
&lt;br /&gt;
==== FNX4N4S issues ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Can&#039;t seem to make the gamepad work reliably, or one button press affects multiple buttons and triggers at once&#039;&#039;&#039;&lt;br /&gt;
* After the first batch of these in 2023, the cabling changed and the differing wire colors induced some errors in the wiring inside the FNX4N4S case. The solution is to follow @Cibee&#039;s work and make sure you tie these 2 sets of pins the right way:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!FNX4N4S pins inside, &lt;br /&gt;
marked CN1&lt;br /&gt;
!DIN9 pins outside the cable, &lt;br /&gt;
while facing the pins&lt;br /&gt;
!original 2023 run wire colors&lt;br /&gt;
!latest 2024-5 run wire colors&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|blue&lt;br /&gt;
|blue&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|6&lt;br /&gt;
|red&lt;br /&gt;
|red&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|white&lt;br /&gt;
|green&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|7&lt;br /&gt;
|brown&lt;br /&gt;
|brown&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|3&lt;br /&gt;
|green&lt;br /&gt;
|orange&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|8&lt;br /&gt;
|purple&lt;br /&gt;
|purple&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|4&lt;br /&gt;
|orange&lt;br /&gt;
|yellow&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|9&lt;br /&gt;
|black&lt;br /&gt;
|black&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|5&lt;br /&gt;
|yellow&lt;br /&gt;
|white&lt;br /&gt;
|}&lt;br /&gt;
[[File:Fnx4n4s inside.png|thumb|Inside the FNX4N4S adapter box with the top cover removed. CN1 is where the cable is soldered directly on the PCB.]]&lt;br /&gt;
[[File:Fnx4n4s realcable.png|thumb|Facing the pins of the DIN9 cable of the FNX4N4S adapter box, from the outside.]]&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=File:Fnx4n4s_realcable.png&amp;diff=38435</id>
		<title>File:Fnx4n4s realcable.png</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=File:Fnx4n4s_realcable.png&amp;diff=38435"/>
		<updated>2026-02-01T20:19:01Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Facing the pins of the DIN9 cable of the FNX4N4S adapter box, from the outside&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Troubleshooting&amp;diff=38434</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Troubleshooting&amp;diff=38434"/>
		<updated>2026-02-01T20:16:22Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: FNX4N4S issue added, work by Cibee and Aleskey&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== General issues ===&lt;br /&gt;
* &#039;&#039;&#039;Sometimes, when turning on the F256K/Jr, I get greeted with this screen, from which nothing can happen. How do you resolve this and why does this happen?&#039;&#039;&#039;[[File:Microkernel boot screen.png|thumb|Microkernel boot screen]]&lt;br /&gt;
* Every time you are powering off and on your unit, the FPGA needs to reprogram itself and that takes time (i.e. Not Instantaneous). It&#039;s possible to have faulty loading because the power supply is not quite stable; the RTC that generates the reset is not aligned with the rest of the system. If you are doing a quick on and off, the capacitors are not empty enough to create a rising power rail so the reset can do its things. Unfortunately those are not ASICs, so nothing is instantaneous.&lt;br /&gt;
&lt;br /&gt;
==== FNX4N4S issues ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Can&#039;t seem to make the gamepad work reliably, or one button press affects multiple buttons and triggers at once&#039;&#039;&#039;&lt;br /&gt;
* After the first batch of these in 2023, the cabling changed and the differing wire colors induced some errors in the wiring inside the FNX4N4S case. The solution is to follow @Cibee&#039;s work and make sure you tie these 2 sets of pins the right way:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!FNX4N4S pins inside, &lt;br /&gt;
marked CN1&lt;br /&gt;
!DIN9 pins outside the cable, &lt;br /&gt;
while facing the pins&lt;br /&gt;
!original 2023 run wire colors&lt;br /&gt;
!latest 2024-5 run wire colors&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|blue&lt;br /&gt;
|blue&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|6&lt;br /&gt;
|red&lt;br /&gt;
|red&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|white&lt;br /&gt;
|green&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|7&lt;br /&gt;
|brown&lt;br /&gt;
|brown&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|3&lt;br /&gt;
|green&lt;br /&gt;
|orange&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|8&lt;br /&gt;
|purple&lt;br /&gt;
|purple&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|4&lt;br /&gt;
|orange&lt;br /&gt;
|yellow&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|9&lt;br /&gt;
|black&lt;br /&gt;
|black&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|5&lt;br /&gt;
|yellow&lt;br /&gt;
|white&lt;br /&gt;
|}&lt;br /&gt;
[[File:Fnx4n4s inside.png|thumb|Inside the FNX4N4S adapter box with the top cover removed. CN1 is where the cable is soldered directly on the PCB.]]&lt;br /&gt;
[[File:Fnx4n4s cable.jpg|thumb|Facing the pins of the DIN9 cable of the FNX4N4S adapter box, from the outside.]]&lt;br /&gt;
&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=File:Fnx4n4s_cable.jpg&amp;diff=38433</id>
		<title>File:Fnx4n4s cable.jpg</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=File:Fnx4n4s_cable.jpg&amp;diff=38433"/>
		<updated>2026-02-01T20:15:45Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Facing the pins from the outside of the DIN9 plug of the FNX4N4S adapter box.&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=File:Fnx4n4s_inside.png&amp;diff=38432</id>
		<title>File:Fnx4n4s inside.png</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=File:Fnx4n4s_inside.png&amp;diff=38432"/>
		<updated>2026-02-01T20:14:22Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Inside the case for the FNX4N4S adapter&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Optional_Upgrades&amp;diff=38431</id>
		<title>Optional Upgrades</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Optional_Upgrades&amp;diff=38431"/>
		<updated>2026-02-01T20:04:12Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Feather Huzzah Wifi module (ESP8266) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== F256 Optional Upgrades ==&lt;br /&gt;
&lt;br /&gt;
=== Opening the F256K case ===&lt;br /&gt;
&lt;br /&gt;
To open the top half of the case, you will need a torx security size 8 screwdriver bit. &lt;br /&gt;
To further disassemble the main board and take it out of the bottom half of the case, you will also need a Phillips size 1 bit and a torx security size 10 bit. &lt;br /&gt;
You can check out the whole tear down operation in this video:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;NXktQHyba84&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CR2032 coin cell battery for Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
(F256K: requires the top half of the case being removed)&lt;br /&gt;
&lt;br /&gt;
Install a 3V CR2032 battery to enable real time clock operations.&lt;br /&gt;
&lt;br /&gt;
=== CPU integrated chip swap ===&lt;br /&gt;
&lt;br /&gt;
W65C02S&lt;br /&gt;
&lt;br /&gt;
W65C816S&lt;br /&gt;
&lt;br /&gt;
6809 (FPGA on a mini DIP40 board)&lt;br /&gt;
&lt;br /&gt;
=== Feather Huzzah Wifi module (ESP8266) ===&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a full video guide on how to configure, solder and install an ESP8266 Feather Huzzah module from Adafruit into the F256K, could also apply to a F256Jr.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;As for the F256Jr2 and F256K2, they have their own wifi solutions and would not benefit from this upgrade&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;gJ9rZczDlfA&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3.5 mm audio socket for stereo (year one production K and Jr units only) ===&lt;br /&gt;
&lt;br /&gt;
If you have a Jr or K from 2023, chances are, your 3.5 mm audio socket is mono only by mistake. Here&#039;s a way to test this out. &lt;br /&gt;
&lt;br /&gt;
Run the following BASIC program:&lt;br /&gt;
&lt;br /&gt;
5 poke $D6A1,4: REM&#039;set PSG_ST register to stereo mode&#039;&lt;br /&gt;
&lt;br /&gt;
10 poke $D600,$9C: REM&#039;silence left channel&#039;&lt;br /&gt;
&lt;br /&gt;
20 poke $D600,$89: poke $D600, $3F:REM&#039;send A2 to left channel&#039;&lt;br /&gt;
&lt;br /&gt;
30 poke $D610,$9C:REM&#039;silence right channel&#039;&lt;br /&gt;
&lt;br /&gt;
40 poke $D610,$8A: poke $D610,$0A:rem&#039;something else to right channel&#039;&lt;br /&gt;
&lt;br /&gt;
while capturing the audio in your favorite modern computer software (ie audacity). If you have stereo, you should clearly see a different tone in each left and right channels. If they&#039;re the same mixed tone on both channels, you have a mono socket.&lt;br /&gt;
&lt;br /&gt;
It is possible to desolder the socket and replace a proper one, here are the tips from Stefany:&lt;br /&gt;
&lt;br /&gt;
F256K - Your output will be Mono.&lt;br /&gt;
&lt;br /&gt;
F256Jr - Your output will be working perfectly, but when you want to install an external audio connector on the front bezel, it is not going to work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For the F256K, the line that could be cut are on the side of the board which means that one would need to desolder the connector to fix the issue.&lt;br /&gt;
&lt;br /&gt;
the fix for f256k is either&lt;br /&gt;
&lt;br /&gt;
1- remove, cut trace, reinstall&lt;br /&gt;
&lt;br /&gt;
2- remove, reinstall the right jack connector&lt;br /&gt;
with the right connector, the traces become irrelevent&lt;br /&gt;
&lt;br /&gt;
The right part for the socket is: SJ1-3555NG&lt;br /&gt;
&lt;br /&gt;
*pending video on how to swap this socket on the K*&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Use_the_SNES/NES_controllers&amp;diff=38430</id>
		<title>Use the SNES/NES controllers</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Use_the_SNES/NES_controllers&amp;diff=38430"/>
		<updated>2026-02-01T20:02:00Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: removed link to purchase FNX4N4S, since it no longer works.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== NES and SNES controllers ==&lt;br /&gt;
The F256 machines can use these controllers provided they are equipped with an optional FNX4N4S breakout adapter (website purchase link no longer active). &lt;br /&gt;
&lt;br /&gt;
The official gamepads of yesteryear work without issue with this and are plentiful in the used market. &lt;br /&gt;
&lt;br /&gt;
Third party modern recreations are sometimes flaky or not working at all. Share you discoveries in the discord! &lt;br /&gt;
&lt;br /&gt;
Super famicom gamepads work very well as substitute for regular SNES gamepads.&lt;br /&gt;
[[File:Full complement of gamepads.png|thumb|A fully populated FNX4N4S for the F256K2]]&lt;br /&gt;
&lt;br /&gt;
=== Registers ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Register Name&lt;br /&gt;
!R/W&lt;br /&gt;
!Address&lt;br /&gt;
!NES/SNES&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|PAD_CTRL&lt;br /&gt;
|W&lt;br /&gt;
|0xD880&lt;br /&gt;
|both&lt;br /&gt;
|Used to trigger a reading and setting the NES/SNES mode&lt;br /&gt;
|-&lt;br /&gt;
|PAD_STAT&lt;br /&gt;
|R&lt;br /&gt;
|0xD880&lt;br /&gt;
|both&lt;br /&gt;
|Used to verify if the triggered polling of gamepad state is done yet&lt;br /&gt;
|-&lt;br /&gt;
|PAD0&lt;br /&gt;
|R&lt;br /&gt;
|0xD884&lt;br /&gt;
|both&lt;br /&gt;
|Buttons statuses: if cleared, they are pressed. If set, they are unpressed.&lt;br /&gt;
|-&lt;br /&gt;
|PAD0_S&lt;br /&gt;
|R&lt;br /&gt;
|0xD885&lt;br /&gt;
|SNES&lt;br /&gt;
|Same deal; unused by NES. Consult button table below&lt;br /&gt;
|-&lt;br /&gt;
|PAD1&lt;br /&gt;
|R&lt;br /&gt;
|0xD886&lt;br /&gt;
|both&lt;br /&gt;
|Buttons statuses: if cleared, they are pressed. If set, they are unpressed.&lt;br /&gt;
|-&lt;br /&gt;
|PAD1_S&lt;br /&gt;
|R&lt;br /&gt;
|0xD887&lt;br /&gt;
|SNES&lt;br /&gt;
|Same deal; unused by NES. Consult button table below&lt;br /&gt;
|-&lt;br /&gt;
|PAD2&lt;br /&gt;
|R&lt;br /&gt;
|0xD888&lt;br /&gt;
|both&lt;br /&gt;
|Buttons statuses: if cleared, they are pressed. If set, they are unpressed.&lt;br /&gt;
|-&lt;br /&gt;
|PAD2_S&lt;br /&gt;
|R&lt;br /&gt;
|0xD889&lt;br /&gt;
|SNES&lt;br /&gt;
|Same deal; unused by NES. Consult button table below&lt;br /&gt;
|-&lt;br /&gt;
|PAD3&lt;br /&gt;
|R&lt;br /&gt;
|0xD88A&lt;br /&gt;
|both&lt;br /&gt;
|Buttons statuses: if cleared, they are pressed. If set, they are unpressed.&lt;br /&gt;
|-&lt;br /&gt;
|PAD3_S&lt;br /&gt;
|R&lt;br /&gt;
|0xD88B&lt;br /&gt;
|SNES&lt;br /&gt;
|Same deal; unused by NES. Consult button table below&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Control register ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Register Name&lt;br /&gt;
!R/W&lt;br /&gt;
!Address&lt;br /&gt;
!Bit7&lt;br /&gt;
!Bit6&lt;br /&gt;
!Bit5&lt;br /&gt;
!Bit4&lt;br /&gt;
!Bit3&lt;br /&gt;
!Bit2&lt;br /&gt;
!Bit1&lt;br /&gt;
!Bit0&lt;br /&gt;
|-&lt;br /&gt;
|PAD_CTRL&lt;br /&gt;
|W&lt;br /&gt;
|0xD880&lt;br /&gt;
|NES_TRIG&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|MODE&lt;br /&gt;
| -&lt;br /&gt;
|EN&lt;br /&gt;
|-&lt;br /&gt;
|PAD_STAT&lt;br /&gt;
|R&lt;br /&gt;
|0xD880&lt;br /&gt;
|NES_TRIG&lt;br /&gt;
|DONE&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|MODE&lt;br /&gt;
| -&lt;br /&gt;
|EN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Control register bit states: ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Bit Name&lt;br /&gt;
!If set to 1&lt;br /&gt;
!If cleared to 0&lt;br /&gt;
|-&lt;br /&gt;
|NES_TRIG&lt;br /&gt;
|Launches the polling of the states of all buttons&lt;br /&gt;
|Stops polling the states of all buttons&lt;br /&gt;
|-&lt;br /&gt;
|DONE&lt;br /&gt;
|The states of the buttons are ready to be read&lt;br /&gt;
|The states of the buttons are not ready&lt;br /&gt;
|-&lt;br /&gt;
|MODE&lt;br /&gt;
|SNES data will be used to populate the PAD registers&lt;br /&gt;
|NES data will be used to populate the PAD registers&lt;br /&gt;
|-&lt;br /&gt;
|EN&lt;br /&gt;
|Enables the gamepads&lt;br /&gt;
|Disables the gamepads&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Button table ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!MODE&lt;br /&gt;
!NES/SNES&lt;br /&gt;
!Address&lt;br /&gt;
!Pad&lt;br /&gt;
!Bit7&lt;br /&gt;
!Bit6&lt;br /&gt;
!Bit5&lt;br /&gt;
!Bit4&lt;br /&gt;
!Bit3&lt;br /&gt;
!Bit2&lt;br /&gt;
!Bit1&lt;br /&gt;
!Bit0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|NES&lt;br /&gt;
|0xD884&lt;br /&gt;
|0&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|NES&lt;br /&gt;
|0xD886&lt;br /&gt;
|1&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|NES&lt;br /&gt;
|0xD888&lt;br /&gt;
|2&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|NES&lt;br /&gt;
|0xD88A&lt;br /&gt;
|3&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD884&lt;br /&gt;
|0&lt;br /&gt;
|B&lt;br /&gt;
|Y&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD885&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|A&lt;br /&gt;
|X&lt;br /&gt;
|L&lt;br /&gt;
|R&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD886&lt;br /&gt;
|1&lt;br /&gt;
|B&lt;br /&gt;
|Y&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD887&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|A&lt;br /&gt;
|X&lt;br /&gt;
|L&lt;br /&gt;
|R&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD888&lt;br /&gt;
|2&lt;br /&gt;
|B&lt;br /&gt;
|Y&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD889&lt;br /&gt;
|2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|A&lt;br /&gt;
|X&lt;br /&gt;
|L&lt;br /&gt;
|R&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD88A&lt;br /&gt;
|3&lt;br /&gt;
|B&lt;br /&gt;
|Y&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD88B&lt;br /&gt;
|3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|A&lt;br /&gt;
|X&lt;br /&gt;
|L&lt;br /&gt;
|R&lt;br /&gt;
|}&lt;br /&gt;
Note: L refers to the left shoulder button and R refers to the right shoulder button.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
Example 1: polling a NES controller in PAD0 position and checking if A is pressed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POKE(PAD_CTRL, 0b10000001); //trigger, nes mode, enabled&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
POKE(PAD_CTRL, 0b00000001); //clear trigger&lt;br /&gt;
while((PEEK(PAD_STAT) &amp;amp; 0x40) == 0) //loop while this bit is cleared&lt;br /&gt;
      ;&lt;br /&gt;
if((PEEK(PAD0) &amp;amp; 0x80) == 0) reactToAPressed();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2: polling a SNES controller in PAD2 position and checking if X is pressed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POKE(PAD_CTRL, 0b10000101); //trigger, snes mode, enabled&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
POKE(PAD_CTRL, 0b00000101); //clear trigger&lt;br /&gt;
while((PEEK(PAD_STAT) &amp;amp; 0x40) == 0) //loop while this bit is cleared&lt;br /&gt;
      ;&lt;br /&gt;
if((PEEK(PAD2_S) &amp;amp; 0x04) == 0) reactToXPressed();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 3: polling both types of controller in rapid succession (allows the usage of all 8 controllers!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//NES section&lt;br /&gt;
POKE(PAD_CTRL, 0b10000001); //trigger, nes mode, enabled&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
POKE(PAD_CTRL, 0b00000001); //clear trigger&lt;br /&gt;
while((PEEK(PAD_STAT) &amp;amp; 0x40) == 0) //loop while this bit is cleared&lt;br /&gt;
      ;&lt;br /&gt;
//section where reactions are made to the various NES presses&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//SNES section&lt;br /&gt;
POKE(PAD_CTRL, 0b10000101); //trigger, snes mode, enabled&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
POKE(PAD_CTRL, 0b00000101); //clear trigger&lt;br /&gt;
while((PEEK(PAD_STAT) &amp;amp; 0x40) == 0) //loop while this bit is cleared&lt;br /&gt;
      ;&lt;br /&gt;
//section where reactions are made to the various SNES presses&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Source code example in C: ===&lt;br /&gt;
Check out this simple example displaying the statuses of all 4 NES pads on screen, using hex: https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NES/src&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_6502&amp;diff=38429</id>
		<title>Software for 6502</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_6502&amp;diff=38429"/>
		<updated>2026-01-31T21:40:23Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Music */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note that when an hex address is given, it&#039;s meant to instruct as to which address to bload or to send (ie foenixmgr python script) the program (ie a .bin file) to before running it. For extra help on how to run .bin files and almost every possible scheme that has to be used to run program, you can consult this video that&#039;s also part of [[Getting Started]], this one: https://www.youtube.com/watch?v=0ShFv89KGDs&lt;br /&gt;
&lt;br /&gt;
Many download links are posts in the main [https://discord.gg/9vjUEGgcUS Foenix Retro Systems discord server] which will require you to join in order to get to them.&lt;br /&gt;
&lt;br /&gt;
A [[Getting Started#Demos Archive|Demo Archive]] was put together in September 2023 to get ready to show to youtubers, some of these are linked once more, in this page.   &lt;br /&gt;
&lt;br /&gt;
There&#039;s also the Foenix Marketplace website maintained by EMWhite with its own collection of articles and software http://apps.emwhite.org/foenixmarketplace/.  &lt;br /&gt;
&lt;br /&gt;
===== Curated SD card collection of games, demos, utilities =====&lt;br /&gt;
Here is a download link to a zip file meant to be extracted into the root of an SD card: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
&lt;br /&gt;
Best to wipe out your SD card and start anew with the contents of this extracted to root. Micah&#039;s file manager doesn&#039;t like long lists of files so it really is best to not overdo it. I tried to minimize the files in root, but I couldn&#039;t for everything.&lt;br /&gt;
&lt;br /&gt;
Open the readme.txt file with moreorless to see some instructions about the collection. Best to run /- fm first, then open the readme.txt from it&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|F256 f/term&lt;br /&gt;
|Terminal emulator for F256K and Jr with classic (flat) memory load&lt;br /&gt;
|Micah&lt;br /&gt;
| - fterm.pgZ or use f/manager&lt;br /&gt;
|https://github.com/WartyMN/F256-terminal/blob/main/release/fterm.pgZ&lt;br /&gt;
|-&lt;br /&gt;
|FoenixTarot&lt;br /&gt;
|Tarot card readings in SuperBasic&lt;br /&gt;
|Mike&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/mcassera/FoenixTarot/tree/main&lt;br /&gt;
|-&lt;br /&gt;
|Forthf256&lt;br /&gt;
|Forth implementation&lt;br /&gt;
|Vasyl&lt;br /&gt;
|pgz in its forth/ folder&lt;br /&gt;
|https://github.com/VasylTsv/ForthX16&lt;br /&gt;
|-&lt;br /&gt;
|WildBits Graphic Toolkit&lt;br /&gt;
|(fmr. F256-GraphicToolkit) Sprite editor, Tilemap editor, Font editor + misc tools&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/econtrerasd/F256-GraphicToolkit/releases&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Demos ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|badapple&lt;br /&gt;
|A 80x60 textmode port of Bad Apple, uses the VS1053b for quality mp3 audio. Needs a Jr2 or K2!&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz*&lt;br /&gt;
|*unzip badapple.zip into the root of your SD card. If done right, the 3 files within will be in the demos/ folder. The program expects its data file there when it runs. https://github.com/Mu0n/F256MiscGoodies/blob/main/apps/badapple.zip&lt;br /&gt;
|-&lt;br /&gt;
|balls&lt;br /&gt;
|Draw a good quantity of multiplexed sprites, fast. Balls bouncing around&lt;br /&gt;
|celton&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/FoenixRetro/demos/blob/main/MultiplexedSprites.md&lt;br /&gt;
|-&lt;br /&gt;
|F256Archon&lt;br /&gt;
|Splash screen intro, plays MIDI using the SAM2695, requires a K2 or Jr2&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256Archon/releases&lt;br /&gt;
|-&lt;br /&gt;
|f256_life&lt;br /&gt;
|An implementation of Conway&#039;s game of life&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_life&lt;br /&gt;
|-&lt;br /&gt;
|F256 Mandelbrot&lt;br /&gt;
|Draws Mandelbrot set fast (5 mins) using coprocessor math. Allows to zoom into the set.&lt;br /&gt;
|mgr42&lt;br /&gt;
|uses basic loader&lt;br /&gt;
|https://github.com/rmsk2/F256_Mandelbrot&lt;br /&gt;
|-&lt;br /&gt;
|F256ShowCase&lt;br /&gt;
|Shows sliding tiling graphics, moves with joystick&lt;br /&gt;
|eriktier&lt;br /&gt;
|$0000&lt;br /&gt;
|https://github.com/pig-games/F256Showcase&lt;br /&gt;
|-&lt;br /&gt;
|fnxmas23 &lt;br /&gt;
|PSG mod music, scrolling text, sound effects, must see demo!&lt;br /&gt;
|dwsJason and digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/apps/xmas24_k2.pgz revised version that can run on wave 2 Jr2 and K2 as well&lt;br /&gt;
|-&lt;br /&gt;
|foenixmas23&lt;br /&gt;
|Xmas 2023 demo with SID music from the classic 1983 C64 xmas demo&lt;br /&gt;
|EMWhite&lt;br /&gt;
|uses basic loader&lt;br /&gt;
|http://apps.emwhite.org/shared-files/815/?foenixmas23.zip&lt;br /&gt;
|-&lt;br /&gt;
|livingworlds&lt;br /&gt;
|Living Worlds, a port of a color cycling by Mark Ferrari, ported here on the F256 by haydenkale&lt;br /&gt;
|haydenkale&lt;br /&gt;
|$0000&lt;br /&gt;
|https://github.com/clandrew/livingworlds/tree/e4532e0d530b76ccb90368fdf5ad10bfa2deeb12&lt;br /&gt;
|-&lt;br /&gt;
|mandel&lt;br /&gt;
|Will draw a mandelbrot set in 3 hours, more useful as a stability test than a useful fractal program&lt;br /&gt;
|Mu0n&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles?tab=readme-ov-file#fractal&lt;br /&gt;
|-&lt;br /&gt;
|mariobros&lt;br /&gt;
|Tilemap and platformer test based on Mario Bros. (1983)&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/mariobros&lt;br /&gt;
|-&lt;br /&gt;
|pendulum&lt;br /&gt;
|Sprite and MIDI demo&lt;br /&gt;
|MikeC&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/pendulum&lt;br /&gt;
|-&lt;br /&gt;
|wormhole&lt;br /&gt;
|Shows a fast wireframe animation of a wormhole&lt;br /&gt;
|haydenkale&lt;br /&gt;
|pgz or bin at $0000&lt;br /&gt;
|https://github.com/clandrew/wormhole?tab=readme-ov-file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|bbombers&lt;br /&gt;
|Boulder Bombers (Alpha-2)  Clone of Canyon Bombers&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/BoulderBombers&amp;lt;nowiki/&amp;gt;https://github.com/scttgs0/BoulderBombers/releases/tag/alpha_2&lt;br /&gt;
|-&lt;br /&gt;
|Bombsweeper&lt;br /&gt;
|Bomb sweeper port&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/855689509520932885/1196352934083035156&lt;br /&gt;
|-&lt;br /&gt;
|Cosmic&lt;br /&gt;
|Shoot &#039;em up&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discordapp.com/channels/691915291721990194/1054250238308790342/1175982979537969214&lt;br /&gt;
|-&lt;br /&gt;
|F256-Trek&lt;br /&gt;
|Updated Trek, with modern F256 Graphics&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|[https://github.com/econtrerasd/Trek-F256/releases/tag/v1.0 https://github.com/econtrerasd/Trek-F256/releases]&lt;br /&gt;
|-&lt;br /&gt;
|F256 two to the power of eleven&lt;br /&gt;
|Port of the puzzle game of 2048&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/F256_2048&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|fillerup&lt;br /&gt;
|Fill &#039;er Up (WIP)&lt;br /&gt;
Qix-like game&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/Fill-er-up&lt;br /&gt;
|-&lt;br /&gt;
|FusionDrive&lt;br /&gt;
|An outrun type game that also plays a MIDI soundtrack&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|wip v0.2, can use a NES pad #1 to move around, or left/right arrow keys currently https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
|-&lt;br /&gt;
|jewelkeeper&lt;br /&gt;
|Sokoban port&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/apps/jewelkeeper.pgz&amp;lt;nowiki/&amp;gt;You can now specify a level file when loading the game &amp;lt;code&amp;gt;/- jewelkeeper.pgz &amp;lt;levels.txt&amp;gt;&amp;lt;/code&amp;gt;.  Find more levels at https://www.sourcecode.se/sokoban/levels.php.  Keep in mind the maximum level dimension is 20x15, anything larger will be ignored&lt;br /&gt;
|-&lt;br /&gt;
|Jr Wördl&lt;br /&gt;
|port of Wordle&lt;br /&gt;
|AgeAgeEye&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/ageageeye/Superbasic-F256Jr-examples&lt;br /&gt;
|-&lt;br /&gt;
|kartdemo&lt;br /&gt;
|Kart racing game&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225217654487253094/1228246780840513556&lt;br /&gt;
|-&lt;br /&gt;
|Lair of the Lich King&lt;br /&gt;
|Rogue like dungeon crawler. Demo has 3 levels; full has 25+&lt;br /&gt;
|Micah&lt;br /&gt;
| - lkdemo/lk.pgz&lt;br /&gt;
|[https://discord.com/channels/691915291721990194/1230670413361844244/1317256215566487593 1.0 Beta 19 Demo]&lt;br /&gt;
|-&lt;br /&gt;
|livewire&lt;br /&gt;
|Livewire (WIP)&lt;br /&gt;
Tempest-like game&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/Livewire&lt;br /&gt;
|-&lt;br /&gt;
|Maze-Munch&lt;br /&gt;
|Pac-Man clone&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/Maze-Munch&lt;br /&gt;
|-&lt;br /&gt;
|pdefense&lt;br /&gt;
|Planetary Defense (WIP)&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
mouse&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/PlanetaryDefense&lt;br /&gt;
|-&lt;br /&gt;
|Shanghai/Mahjongg&lt;br /&gt;
|A clone of Shanghai. Also known as Mahjongg&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz or KUP&lt;br /&gt;
mouse needed&lt;br /&gt;
|https://github.com/rmsk2/f256_mahjong&lt;br /&gt;
|-&lt;br /&gt;
|Ski-Jr&lt;br /&gt;
|Ski game downhill&lt;br /&gt;
|digarok&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/digarok/superbasic-traveler/blob/main/ski-jr.bas&lt;br /&gt;
|-&lt;br /&gt;
|Track &amp;amp; Field&lt;br /&gt;
|Olympic Game by Konami (WIP)&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick or keyboard&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tetris&lt;br /&gt;
|Good old 80&#039;s game&lt;br /&gt;
|Daniel Tremblay (Grenouye)&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick or keyboard&lt;br /&gt;
|https://github.com/dtremblay/c256-tetris/tree/f256k&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #01 - April 6th/7th 2024 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|15puzzle&lt;br /&gt;
|Number sort puzzle&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_15puzzle/releases&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Flight Simulator&lt;br /&gt;
|flying simulator&lt;br /&gt;
|sduensin&lt;br /&gt;
|pgz&lt;br /&gt;
|https://cdn.discordapp.com/attachments/1225481966200029286/1227764847819620454/shotel.pgz&lt;br /&gt;
|-&lt;br /&gt;
|frisbee&lt;br /&gt;
|Frisbee throw past sport game&lt;br /&gt;
|dwsJason&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dwsJason/f256/blob/develop/merlin32/frisbee/frisbee.pgz&lt;br /&gt;
|-&lt;br /&gt;
|Impasse&lt;br /&gt;
|Shoot &#039;em up&lt;br /&gt;
|digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225481966200029286/1227075699895046235&lt;br /&gt;
|-&lt;br /&gt;
|soccur&lt;br /&gt;
|mutliplayer game of soccer&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|executable:https://discord.com/channels/691915291721990194/1225481966200029286/1226808228948611184&lt;br /&gt;
source code:&lt;br /&gt;
https://discord.com/channels/691915291721990194/1225481966200029286/1226812472069980232&lt;br /&gt;
|-&lt;br /&gt;
|Trek&lt;br /&gt;
|port of classic Star Trek game&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225481966200029286/1226727849944289341&lt;br /&gt;
|-&lt;br /&gt;
|Typing Star&lt;br /&gt;
|typing reaction game&lt;br /&gt;
|haydenkale&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/clandrew/typestar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #02 - October 25th-November 1st 2024 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Bach&#039;s MIDI Hero&lt;br /&gt;
|Free MIDI/PSG play + note play tutorial&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
the MIDI feature requires a F256K2 or F256Jr2; a legacy PSG option also allows F256K and F256Jr to still hear it. Optionally uses a MIDI in controller plugged in.&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles/releases/download/v1.2/BachHero.pgz&lt;br /&gt;
|-&lt;br /&gt;
|f256_snake&lt;br /&gt;
|&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz. Use cursor keys, Atari joystick or SNES pad to play&lt;br /&gt;
|https://github.com/rmsk2/f256_snake&lt;br /&gt;
|-&lt;br /&gt;
|fnxsnake&lt;br /&gt;
|&lt;br /&gt;
|silk-neon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/ksiondag/fnxsnake&lt;br /&gt;
|-&lt;br /&gt;
|The Hallow&lt;br /&gt;
|&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/FoenixGameJamOct2024&lt;br /&gt;
|-&lt;br /&gt;
|Halloween Birthday&lt;br /&gt;
|&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/GameJam2024_F256K&lt;br /&gt;
|-&lt;br /&gt;
|Haunted Mansion&lt;br /&gt;
|&lt;br /&gt;
|digarok&lt;br /&gt;
|superbasic&lt;br /&gt;
|https://github.com/digarok/fnxgamejam-haunted-mansion&lt;br /&gt;
|-&lt;br /&gt;
|Kooyan&lt;br /&gt;
|&lt;br /&gt;
|Grenouye&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dtremblay/kooyan.git&lt;br /&gt;
|-&lt;br /&gt;
|Spooky Run&lt;br /&gt;
|&lt;br /&gt;
|dwsJason&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dwsJason/spooky&lt;br /&gt;
|-&lt;br /&gt;
|Trick or Treat&lt;br /&gt;
|&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/TrickOrTreat&lt;br /&gt;
|-&lt;br /&gt;
|Ultima III - Exodus&lt;br /&gt;
|port&lt;br /&gt;
|Minstrel Dragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/minstreldragon/F256_Ultima_3&lt;br /&gt;
|-&lt;br /&gt;
|Warlock&lt;br /&gt;
|remake of 68000 game&lt;br /&gt;
|xDraconian&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick&lt;br /&gt;
DOWN=change_level&lt;br /&gt;
UP=jump&lt;br /&gt;
UP-LEFT=leap&lt;br /&gt;
UP-RIGHT=leap&lt;br /&gt;
|https://github.com/scttgs0/Foenix_GameJam_Oct2024&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Game Jam #03 - April 18th-April 27th 2025 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Arcade Shanghai v1.2&lt;br /&gt;
|Shanghai clone&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic, keep the .bas program in root, the rest in the provided ashanghai/ folder&lt;br /&gt;
|https://github.com/econtrerasd/ashanghai/releases&lt;br /&gt;
|-&lt;br /&gt;
|Bawk Bawk Cluck Cluck&lt;br /&gt;
|Chicken themed platformer&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/FoenixGameJamApr2025&lt;br /&gt;
|-&lt;br /&gt;
|BitLadder&lt;br /&gt;
|Shoot &#039;Em Up&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz. For full sound compatibility, a Jr2 or K2 is needed. &lt;br /&gt;
Uses 4 sound chips! (PSG, SID, OPL3, MIDI)&lt;br /&gt;
|https://mu0n.itch.io/bitladder&lt;br /&gt;
|-&lt;br /&gt;
|F256_Commando&lt;br /&gt;
|Commando port&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/F256_Commando&lt;br /&gt;
|-&lt;br /&gt;
|F256_LodeRunner&lt;br /&gt;
|Lode Runner port&lt;br /&gt;
|Minstrel Dragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/minstreldragon/F256_Loderunner/releases&lt;br /&gt;
|-&lt;br /&gt;
|Mahjong&lt;br /&gt;
|Shangai clone&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_mahjong/releases&lt;br /&gt;
|-&lt;br /&gt;
|Quarth&lt;br /&gt;
|Block placement arcade game&lt;br /&gt;
|Grenouye&lt;br /&gt;
|pgz&lt;br /&gt;
|https://grenouye.itch.io/f256-quarth&lt;br /&gt;
|-&lt;br /&gt;
|Skee(ster)-Ball&lt;br /&gt;
|&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/skeeball256/tree/main&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #04 - November-December 2025 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Fallitaire&lt;br /&gt;
|A cozy fall-themed twist on Pyramid Solitaire, built for the Foenix F256K2 Game Jam!&lt;br /&gt;
|Programmer Vs World&lt;br /&gt;
|bas&lt;br /&gt;
|https://programmervsworld.itch.io/fallitaire&lt;br /&gt;
|-&lt;br /&gt;
|H.E.R.O.&lt;br /&gt;
|Port of the classic game H.E.R.O.&lt;br /&gt;
|Cibee&lt;br /&gt;
|pgz&lt;br /&gt;
|https://c1bee.itch.io/hero&lt;br /&gt;
|-&lt;br /&gt;
|Leaderboard&lt;br /&gt;
|Golf game&lt;br /&gt;
|xDraconian&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1424187774642290799/1456104940186501132&lt;br /&gt;
|-&lt;br /&gt;
|Pitfall&lt;br /&gt;
|Port of the classic Pitfall game from Activision&lt;br /&gt;
|MinstrelDragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://minstrel.itch.io/pitfall-foenix-f256x&lt;br /&gt;
|-&lt;br /&gt;
|Return of the Falcon&lt;br /&gt;
|&lt;br /&gt;
|Callisto&lt;br /&gt;
|TBD&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Swicheroo&lt;br /&gt;
|An Alternate Puzzle Game&lt;br /&gt;
|jbaker8935&lt;br /&gt;
|pgz&lt;br /&gt;
|https://jbaker8935.itch.io/switcheroo&lt;br /&gt;
|-&lt;br /&gt;
|Track Day&lt;br /&gt;
|v1.0 top down race game vs computer controlled opponents&lt;br /&gt;
|MikeC&lt;br /&gt;
|pgz&lt;br /&gt;
|https://mcassera.itch.io/track-day-racing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Music ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|cozyMIDI&lt;br /&gt;
|Plays a SMF with the SAM2695 or VS1053b &lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|cozyMIDI v2.7 can open and play type 0 and type 1 standard MIDI files (SMF)&lt;br /&gt;
needs a Jr2 or K2&lt;br /&gt;
with a 2x core at https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
&lt;br /&gt;
has a light show using all four RGB case LEDs of the K2 (might break compatibility with Jr2? test it please!)&lt;br /&gt;
run operation 1: just as itself, it will force you to pick a midi file in the &#039;midi/&#039; folder /- cozymidi&lt;br /&gt;
&lt;br /&gt;
run operation 2: in f/manager, if you put this as &amp;lt;code&amp;gt;midiplayer.pgz&amp;lt;/code&amp;gt;in the &#039;_apps/&#039; folder, f/manager will open midi file with it when you launch .mid files. &lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/cozymidi.pgz&lt;br /&gt;
|-&lt;br /&gt;
|digestMidi&lt;br /&gt;
|converts .mid to .dim&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|.mid files are slow to load, parse and prepare for a playback. This tool comes in to convert them into a .dim format that strips out unnecessary MIDI commands and sets it up for timer0 time delays. Works with type 0 and type 1 standard midi files. This tools does the conversion and lets you hear the result.&lt;br /&gt;
Find the latest version here: https://github.com/Mu0n/F256MiscGoodies/tree/main/apps&lt;br /&gt;
|-&lt;br /&gt;
|EdInHisLib&lt;br /&gt;
|SID+OPL3 simultaneously&lt;br /&gt;
|beethead, ported from xantax&lt;br /&gt;
|pgz&lt;br /&gt;
|F256 port: https://discordapp.com/channels/691915291721990194/1054249926521016392/1184413356598231120&lt;br /&gt;
original: &amp;lt;nowiki&amp;gt;https://csdb.dk/release/?id=170898&amp;lt;/nowiki&amp;gt;. Not 100% accurate but close.&lt;br /&gt;
|-&lt;br /&gt;
|F256amp&lt;br /&gt;
|mp3, ogg, wav, wma file playback&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|(aka audioplayer.pgz) v2.3 Needs a Jr.2 or K2 since it uses the VS1053b chip.&lt;br /&gt;
For a starter collection of .mp3 and other audio files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
run operation 1: just as itself, it will force you to pick an audio file. it expects a &amp;lt;code&amp;gt;media/mp3/&amp;lt;/code&amp;gt; folder, but it can live without it and peek into the root instead. &lt;br /&gt;
&lt;br /&gt;
run operation 2: with an argument, it will auto-play it: /- f256amp yourmp3file.mp3 &lt;br /&gt;
&lt;br /&gt;
run operation 3:  in f/manager, if you put this as &amp;lt;code&amp;gt;audioplayer.pgz&amp;lt;/code&amp;gt; in the &#039;_apps/&#039; folder. This lets f/manager automatically open up .mp3, .wav, .ogg, .wma that you press enter on.&lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/f256amp.pgz&lt;br /&gt;
|-&lt;br /&gt;
|FireJam&lt;br /&gt;
|all chips, music playing with MIDI in&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v1.2 MIDI in and out capable, it will still partially work with a Jr. (PSG, and SID if you have them), a K (PSG, SID, OPL3) and the newest wave 2 Jr2 and K2 (PSG, SID, OPL3, SAM, VS1053b).&lt;br /&gt;
Best to use with a MIDI in controller, but it&#039;ll be controllable with arrows and space to make notes individually, or the F keys to start beats. https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
|-&lt;br /&gt;
|jrtracker&lt;br /&gt;
|Tracker based in basic and uses the PSG&lt;br /&gt;
(considered obsolete, use tracker2)&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://ptb.discord.com/channels/691915291721990194/1008139105386889346/1188292876984143983&lt;br /&gt;
|-&lt;br /&gt;
|modo&lt;br /&gt;
|MOD player using the PSG&lt;br /&gt;
|dwsJason and digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discordapp.com/channels/691915291721990194/855689509520932885/1190723114661859429&lt;br /&gt;
|-&lt;br /&gt;
|Musik&lt;br /&gt;
|Music piece demo using MIDI&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/Musik/blob/main/Musik.PGZ&amp;lt;nowiki/&amp;gt;Musikalisches Würfelspiel&lt;br /&gt;
Requires a Jr2 or K2 since it uses MIDI&lt;br /&gt;
|-&lt;br /&gt;
|opl3snooper&lt;br /&gt;
|playback of VGM files (that use opl2 and opl3) and MIDI in&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v1.1 mainly plays back vgm files, but you can pause it and snoop around the channel instruments and play up to 18 note polyphony with MIDI in. expects a collection in media/vgm/, or it will browse from the root if it can&#039;t find.  &lt;br /&gt;
It can load a .spl (Simple PLaylist) text file, which is one file per line, including their respective paths. &lt;br /&gt;
Requires a Jr2 or K2 with a 2x core to use the extra bank of SRAM.&lt;br /&gt;
For a starter collection of .vgm files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
run operation 1: just as itself, it will force you to pick a midi file in the &#039;media/vgm/&#039; folder &lt;br /&gt;
&lt;br /&gt;
run operation 2: in f/manager (v1.1b9 and up), if you put this as &amp;lt;code&amp;gt;vgmplayer.pgz&amp;lt;/code&amp;gt;in the &#039;_apps/&#039; folder, f/manager will open midi file with it when you launch .vgm files. &lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/opl3snooper.pgz &lt;br /&gt;
|-&lt;br /&gt;
|opl3tweak&lt;br /&gt;
|uses MIDI in, plays 18 channels polyphony in real time to the YMF262 OPL3. Fish for random register values.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v0.1. Can&#039;t save or load instrument definitions yet. Needs a K2 with a MIDI in currently.  https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/opl3tweak.pgz&lt;br /&gt;
Arrows to move around, + and - keys to incr/decr values or type in a hex value directly under the highlighted position.&lt;br /&gt;
|-&lt;br /&gt;
|piano&lt;br /&gt;
|Plays some PSG notes with the keyboard&lt;br /&gt;
|Mu0n&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles?tab=readme-ov-file#pulse-sound-generator-piano&lt;br /&gt;
|-&lt;br /&gt;
|playvgm&lt;br /&gt;
|plays a headless vgm file with OPL3&lt;br /&gt;
|G33kyAndIKnowIt&lt;br /&gt;
|pgx&lt;br /&gt;
|https://github.com/natebarney/playvgm-f256k&lt;br /&gt;
some example music files can be gotten from this post:&lt;br /&gt;
[https://discord.com/channels/691915291721990194/975117322836656138/1220366429640065074 https://discord.com/channels/6][https://discord.com/channels/691915291721990194/975117322836656138/1220366429640065074 91915291721990194/975117322836656138/1220366429640065074]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) open a normal .vgm into a hex editor &amp;lt;nowiki/&amp;gt;and cut out the header bytes from 0x00 to 0x&amp;lt;nowiki/&amp;gt;FF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) run by first using superbasic&#039;s &#039;&#039;&#039;&#039;&#039;bload&#039;&#039;&#039;&#039;&#039; &#039;&#039;&#039;&#039;&#039;&amp;quot;yourmusicfile&amp;quot;, $01000&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
followed by running this program with &#039;&#039;&#039;&#039;&#039;/- playvgm.pgx&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|sidtweak&lt;br /&gt;
|uses MIDI in, plays 6 channels polyphony in real time to the dual SID. Fish for random register values.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v0.1. Can&#039;t save or load instrument definitions yet. Needs a K2 with a MIDI in currently. https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/sidtweak.pgz&lt;br /&gt;
Arrows to move around, + and - keys to incr/decr values or type in a hex value directly under the highlighted position.&lt;br /&gt;
|-&lt;br /&gt;
|rawsidplayer&lt;br /&gt;
|plays raw PSID files from the HVSC collection, converted by zigreSID&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|(formely psidplayer) v0.2 find rawsidplayer.pgz and a starter .rsd file (raw sid dumps). For a starter collection of .rsd files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection &lt;br /&gt;
extract sid.zip into a folder /sid/ in the root of your SD card, that&#039;s where psidplayer.pgz will first look to let you pick a file. failing that, it will fall back to the root folder and let you navigate.&lt;br /&gt;
&lt;br /&gt;
program link:&lt;br /&gt;
&lt;br /&gt;
https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/rawsidplayer.pgz&lt;br /&gt;
|-&lt;br /&gt;
|tracker2 v1.5&lt;br /&gt;
|Like jrtracker.bas, but using both PSGs&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/econtrerasd/Tracker2/releases&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Uti&amp;lt;nowiki/&amp;gt;lities ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Descrip&amp;lt;nowiki/&amp;gt;tion&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|basic2text&lt;br /&gt;
|A simple utility for translating Commodore BASIC (all variants) from its native tokenized file format to a text format that can be opened with SuperBASIC. Does not perform any code translation: all adaptation is up to you. &lt;br /&gt;
|Micah&lt;br /&gt;
|pgZ&lt;br /&gt;
|https://github.com/WartyMN/F256-BasText/releases/latest&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|dcopy&lt;br /&gt;
|A tool to copy files from one drive to another or to/from your PC via RS-232 and a nullmodem cable&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz/flash&lt;br /&gt;
|https://github.com/rmsk2/f256_dcopy&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|f/manager&lt;br /&gt;
|A general file utility, launcher, and memory viewing program. Dual-panel file/memory browsers; copy between disks,  between folders on same disk, and from memory to disk and vice versa; delete, rename, and duplicate files; view files as hex or text (with word-wrap); launch applications and known file types; set the RTC clock; search in RAM and flash. Works with internal SD card and IEC devices such as FNX1591 and Commodore 1541. Can be installed in primary flash position ahead of SuperBASIC or DOS, or at a higher location. Can also be run from disk with &amp;quot;- fm.pgz&amp;quot;.&lt;br /&gt;
|Micah&lt;br /&gt;
|pgZ/flash&lt;br /&gt;
|https://github.com/WartyMN/F256-FileManager/releases&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|f256_reset&lt;br /&gt;
|A small utility that lets you reset the machine through this piece of flash software&lt;br /&gt;
|mgr42&lt;br /&gt;
|flash&lt;br /&gt;
|https://github.com/rmsk2/f256_reset&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|fcart&lt;br /&gt;
|A program that allows to write data to flash expansion cartridges &lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz, on-board and cartridge flash&lt;br /&gt;
|https://github.com/rmsk2/cartflash&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|flashcart&lt;br /&gt;
|Allows to wipe a block of flash or write a program to a flash cart, from this basic program from the F256Jr/K&lt;br /&gt;
|redfool.&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Red-Fool/F256_FlashCart/tree/main&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|flashselect&lt;br /&gt;
|Allows to select a program to start from a flash cartridge via a menu&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz, on-board and cartridge flash&lt;br /&gt;
|https://github.com/rmsk2/flashselect&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|fonts&lt;br /&gt;
|A variety of fonts using the standard F256 character set arrangement. Load with the F256 file manager (f/manager), or your own code.&lt;br /&gt;
|Micah&lt;br /&gt;
|(not a program)&lt;br /&gt;
|[https://github.com/WartyMN/Foenix-Fonts/tree/main https://github.com/WartyMN/Foenix-Fonts]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|midiStuff&lt;br /&gt;
|Test program for a F256K2 or F256Jr2 that sends MIDI data to the internal sam2695 dream chip that produces MIDI based audio. Also test a keyboard controller plugged in the MIDI in port.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles/blob/main/README.md#midistuff&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|moreorless&lt;br /&gt;
|A text editor for the Foenix 256 line of computers&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/moreorless/releases/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pgz2flash&lt;br /&gt;
|A program for your Linux, Windows or MacOS machine to turn any PGZ or SuperBASIC program into a KUP which can be run from cartridge or onboard flash memory&lt;br /&gt;
|mgr42&lt;br /&gt;
|Executable for modern computers&lt;br /&gt;
|https://github.com/rmsk2/pgz2flash&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|sidTester&lt;br /&gt;
|Simple superbasic program that tests out all 3 voices of the SID1 on the Jr (if populated), K, Jr2 and K2. Ported by Mu0n, made by andy on HackJunk.com https://hackjunk.com/2017/11/07/commodore-64-sid-tester/&lt;br /&gt;
|andy&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/blob/main/apps/sidtester.bas&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|testsuite.bas&lt;br /&gt;
|a series of tests for your F256, video modes and sound chips&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|run from the root, &lt;br /&gt;
https://github.com/econtrerasd/testSuite-F256/releases&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|wget&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|&amp;lt;nowiki/&amp;gt;fetches a file from a http address if you have a network connection active. Works with the K and Jr. ESP32 Feather &#039;huzzah&#039; board. Not meant to be used with the K2 and Jr2 Wiznet chip.&lt;br /&gt;
|gadget&lt;br /&gt;
|&amp;lt;nowiki/&amp;gt;pgz/flash&lt;br /&gt;
|https://github.com/ghackwrench/F256_wget&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sample Code ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Assembly examples&lt;br /&gt;
|Sample programs for several features of the Foenix F256K and Jr.&lt;br /&gt;
|mgr42&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/rmsk2/Hello_Foenix256_Jr/blob/main/testprogs.md&lt;br /&gt;
|-&lt;br /&gt;
|cc65 example&lt;br /&gt;
|c example code&lt;br /&gt;
|gadget&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/ghackwrench/F256_Jr_Kernel_DOS&lt;br /&gt;
|-&lt;br /&gt;
|digarok basic stuff&lt;br /&gt;
|Lots of basic examples&lt;br /&gt;
|digarok&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/digarok/superbasic-traveler/tree/main&lt;br /&gt;
|-&lt;br /&gt;
|MikeC repos&lt;br /&gt;
|Various projects in assembly&lt;br /&gt;
|MikeC&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/mcassera&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K asm doodles&lt;br /&gt;
|Some asm examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleASMdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K basic doodles&lt;br /&gt;
|Some basic examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K C doodles&lt;br /&gt;
|Some C examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Raúl SQ basic repo&lt;br /&gt;
|F256 SuperBASIC Trigonometry&lt;br /&gt;
|Raúl SQ&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/raul-sq/FoenixF256K2&lt;br /&gt;
|-&lt;br /&gt;
|tcp example&lt;br /&gt;
|connects to a server and gets typed in text echoed back to you&lt;br /&gt;
|gadget&lt;br /&gt;
|$2000&lt;br /&gt;
|https://github.com/ghackwrench/F256_example_tcp&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_6502&amp;diff=38428</id>
		<title>Software for 6502</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_6502&amp;diff=38428"/>
		<updated>2026-01-31T21:39:42Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Music */ cozymidi v2.7&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note that when an hex address is given, it&#039;s meant to instruct as to which address to bload or to send (ie foenixmgr python script) the program (ie a .bin file) to before running it. For extra help on how to run .bin files and almost every possible scheme that has to be used to run program, you can consult this video that&#039;s also part of [[Getting Started]], this one: https://www.youtube.com/watch?v=0ShFv89KGDs&lt;br /&gt;
&lt;br /&gt;
Many download links are posts in the main [https://discord.gg/9vjUEGgcUS Foenix Retro Systems discord server] which will require you to join in order to get to them.&lt;br /&gt;
&lt;br /&gt;
A [[Getting Started#Demos Archive|Demo Archive]] was put together in September 2023 to get ready to show to youtubers, some of these are linked once more, in this page.   &lt;br /&gt;
&lt;br /&gt;
There&#039;s also the Foenix Marketplace website maintained by EMWhite with its own collection of articles and software http://apps.emwhite.org/foenixmarketplace/.  &lt;br /&gt;
&lt;br /&gt;
===== Curated SD card collection of games, demos, utilities =====&lt;br /&gt;
Here is a download link to a zip file meant to be extracted into the root of an SD card: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
&lt;br /&gt;
Best to wipe out your SD card and start anew with the contents of this extracted to root. Micah&#039;s file manager doesn&#039;t like long lists of files so it really is best to not overdo it. I tried to minimize the files in root, but I couldn&#039;t for everything.&lt;br /&gt;
&lt;br /&gt;
Open the readme.txt file with moreorless to see some instructions about the collection. Best to run /- fm first, then open the readme.txt from it&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|F256 f/term&lt;br /&gt;
|Terminal emulator for F256K and Jr with classic (flat) memory load&lt;br /&gt;
|Micah&lt;br /&gt;
| - fterm.pgZ or use f/manager&lt;br /&gt;
|https://github.com/WartyMN/F256-terminal/blob/main/release/fterm.pgZ&lt;br /&gt;
|-&lt;br /&gt;
|FoenixTarot&lt;br /&gt;
|Tarot card readings in SuperBasic&lt;br /&gt;
|Mike&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/mcassera/FoenixTarot/tree/main&lt;br /&gt;
|-&lt;br /&gt;
|Forthf256&lt;br /&gt;
|Forth implementation&lt;br /&gt;
|Vasyl&lt;br /&gt;
|pgz in its forth/ folder&lt;br /&gt;
|https://github.com/VasylTsv/ForthX16&lt;br /&gt;
|-&lt;br /&gt;
|WildBits Graphic Toolkit&lt;br /&gt;
|(fmr. F256-GraphicToolkit) Sprite editor, Tilemap editor, Font editor + misc tools&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/econtrerasd/F256-GraphicToolkit/releases&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Demos ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|badapple&lt;br /&gt;
|A 80x60 textmode port of Bad Apple, uses the VS1053b for quality mp3 audio. Needs a Jr2 or K2!&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz*&lt;br /&gt;
|*unzip badapple.zip into the root of your SD card. If done right, the 3 files within will be in the demos/ folder. The program expects its data file there when it runs. https://github.com/Mu0n/F256MiscGoodies/blob/main/apps/badapple.zip&lt;br /&gt;
|-&lt;br /&gt;
|balls&lt;br /&gt;
|Draw a good quantity of multiplexed sprites, fast. Balls bouncing around&lt;br /&gt;
|celton&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/FoenixRetro/demos/blob/main/MultiplexedSprites.md&lt;br /&gt;
|-&lt;br /&gt;
|F256Archon&lt;br /&gt;
|Splash screen intro, plays MIDI using the SAM2695, requires a K2 or Jr2&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256Archon/releases&lt;br /&gt;
|-&lt;br /&gt;
|f256_life&lt;br /&gt;
|An implementation of Conway&#039;s game of life&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_life&lt;br /&gt;
|-&lt;br /&gt;
|F256 Mandelbrot&lt;br /&gt;
|Draws Mandelbrot set fast (5 mins) using coprocessor math. Allows to zoom into the set.&lt;br /&gt;
|mgr42&lt;br /&gt;
|uses basic loader&lt;br /&gt;
|https://github.com/rmsk2/F256_Mandelbrot&lt;br /&gt;
|-&lt;br /&gt;
|F256ShowCase&lt;br /&gt;
|Shows sliding tiling graphics, moves with joystick&lt;br /&gt;
|eriktier&lt;br /&gt;
|$0000&lt;br /&gt;
|https://github.com/pig-games/F256Showcase&lt;br /&gt;
|-&lt;br /&gt;
|fnxmas23 &lt;br /&gt;
|PSG mod music, scrolling text, sound effects, must see demo!&lt;br /&gt;
|dwsJason and digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/apps/xmas24_k2.pgz revised version that can run on wave 2 Jr2 and K2 as well&lt;br /&gt;
|-&lt;br /&gt;
|foenixmas23&lt;br /&gt;
|Xmas 2023 demo with SID music from the classic 1983 C64 xmas demo&lt;br /&gt;
|EMWhite&lt;br /&gt;
|uses basic loader&lt;br /&gt;
|http://apps.emwhite.org/shared-files/815/?foenixmas23.zip&lt;br /&gt;
|-&lt;br /&gt;
|livingworlds&lt;br /&gt;
|Living Worlds, a port of a color cycling by Mark Ferrari, ported here on the F256 by haydenkale&lt;br /&gt;
|haydenkale&lt;br /&gt;
|$0000&lt;br /&gt;
|https://github.com/clandrew/livingworlds/tree/e4532e0d530b76ccb90368fdf5ad10bfa2deeb12&lt;br /&gt;
|-&lt;br /&gt;
|mandel&lt;br /&gt;
|Will draw a mandelbrot set in 3 hours, more useful as a stability test than a useful fractal program&lt;br /&gt;
|Mu0n&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles?tab=readme-ov-file#fractal&lt;br /&gt;
|-&lt;br /&gt;
|mariobros&lt;br /&gt;
|Tilemap and platformer test based on Mario Bros. (1983)&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/mariobros&lt;br /&gt;
|-&lt;br /&gt;
|pendulum&lt;br /&gt;
|Sprite and MIDI demo&lt;br /&gt;
|MikeC&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/pendulum&lt;br /&gt;
|-&lt;br /&gt;
|wormhole&lt;br /&gt;
|Shows a fast wireframe animation of a wormhole&lt;br /&gt;
|haydenkale&lt;br /&gt;
|pgz or bin at $0000&lt;br /&gt;
|https://github.com/clandrew/wormhole?tab=readme-ov-file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|bbombers&lt;br /&gt;
|Boulder Bombers (Alpha-2)  Clone of Canyon Bombers&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/BoulderBombers&amp;lt;nowiki/&amp;gt;https://github.com/scttgs0/BoulderBombers/releases/tag/alpha_2&lt;br /&gt;
|-&lt;br /&gt;
|Bombsweeper&lt;br /&gt;
|Bomb sweeper port&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/855689509520932885/1196352934083035156&lt;br /&gt;
|-&lt;br /&gt;
|Cosmic&lt;br /&gt;
|Shoot &#039;em up&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discordapp.com/channels/691915291721990194/1054250238308790342/1175982979537969214&lt;br /&gt;
|-&lt;br /&gt;
|F256-Trek&lt;br /&gt;
|Updated Trek, with modern F256 Graphics&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|[https://github.com/econtrerasd/Trek-F256/releases/tag/v1.0 https://github.com/econtrerasd/Trek-F256/releases]&lt;br /&gt;
|-&lt;br /&gt;
|F256 two to the power of eleven&lt;br /&gt;
|Port of the puzzle game of 2048&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/F256_2048&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|fillerup&lt;br /&gt;
|Fill &#039;er Up (WIP)&lt;br /&gt;
Qix-like game&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/Fill-er-up&lt;br /&gt;
|-&lt;br /&gt;
|FusionDrive&lt;br /&gt;
|An outrun type game that also plays a MIDI soundtrack&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|wip v0.2, can use a NES pad #1 to move around, or left/right arrow keys currently https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
|-&lt;br /&gt;
|jewelkeeper&lt;br /&gt;
|Sokoban port&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/apps/jewelkeeper.pgz&amp;lt;nowiki/&amp;gt;You can now specify a level file when loading the game &amp;lt;code&amp;gt;/- jewelkeeper.pgz &amp;lt;levels.txt&amp;gt;&amp;lt;/code&amp;gt;.  Find more levels at https://www.sourcecode.se/sokoban/levels.php.  Keep in mind the maximum level dimension is 20x15, anything larger will be ignored&lt;br /&gt;
|-&lt;br /&gt;
|Jr Wördl&lt;br /&gt;
|port of Wordle&lt;br /&gt;
|AgeAgeEye&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/ageageeye/Superbasic-F256Jr-examples&lt;br /&gt;
|-&lt;br /&gt;
|kartdemo&lt;br /&gt;
|Kart racing game&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225217654487253094/1228246780840513556&lt;br /&gt;
|-&lt;br /&gt;
|Lair of the Lich King&lt;br /&gt;
|Rogue like dungeon crawler. Demo has 3 levels; full has 25+&lt;br /&gt;
|Micah&lt;br /&gt;
| - lkdemo/lk.pgz&lt;br /&gt;
|[https://discord.com/channels/691915291721990194/1230670413361844244/1317256215566487593 1.0 Beta 19 Demo]&lt;br /&gt;
|-&lt;br /&gt;
|livewire&lt;br /&gt;
|Livewire (WIP)&lt;br /&gt;
Tempest-like game&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/Livewire&lt;br /&gt;
|-&lt;br /&gt;
|Maze-Munch&lt;br /&gt;
|Pac-Man clone&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/Maze-Munch&lt;br /&gt;
|-&lt;br /&gt;
|pdefense&lt;br /&gt;
|Planetary Defense (WIP)&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
mouse&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/PlanetaryDefense&lt;br /&gt;
|-&lt;br /&gt;
|Shanghai/Mahjongg&lt;br /&gt;
|A clone of Shanghai. Also known as Mahjongg&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz or KUP&lt;br /&gt;
mouse needed&lt;br /&gt;
|https://github.com/rmsk2/f256_mahjong&lt;br /&gt;
|-&lt;br /&gt;
|Ski-Jr&lt;br /&gt;
|Ski game downhill&lt;br /&gt;
|digarok&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/digarok/superbasic-traveler/blob/main/ski-jr.bas&lt;br /&gt;
|-&lt;br /&gt;
|Track &amp;amp; Field&lt;br /&gt;
|Olympic Game by Konami (WIP)&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick or keyboard&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tetris&lt;br /&gt;
|Good old 80&#039;s game&lt;br /&gt;
|Daniel Tremblay (Grenouye)&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick or keyboard&lt;br /&gt;
|https://github.com/dtremblay/c256-tetris/tree/f256k&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #01 - April 6th/7th 2024 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|15puzzle&lt;br /&gt;
|Number sort puzzle&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_15puzzle/releases&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Flight Simulator&lt;br /&gt;
|flying simulator&lt;br /&gt;
|sduensin&lt;br /&gt;
|pgz&lt;br /&gt;
|https://cdn.discordapp.com/attachments/1225481966200029286/1227764847819620454/shotel.pgz&lt;br /&gt;
|-&lt;br /&gt;
|frisbee&lt;br /&gt;
|Frisbee throw past sport game&lt;br /&gt;
|dwsJason&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dwsJason/f256/blob/develop/merlin32/frisbee/frisbee.pgz&lt;br /&gt;
|-&lt;br /&gt;
|Impasse&lt;br /&gt;
|Shoot &#039;em up&lt;br /&gt;
|digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225481966200029286/1227075699895046235&lt;br /&gt;
|-&lt;br /&gt;
|soccur&lt;br /&gt;
|mutliplayer game of soccer&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|executable:https://discord.com/channels/691915291721990194/1225481966200029286/1226808228948611184&lt;br /&gt;
source code:&lt;br /&gt;
https://discord.com/channels/691915291721990194/1225481966200029286/1226812472069980232&lt;br /&gt;
|-&lt;br /&gt;
|Trek&lt;br /&gt;
|port of classic Star Trek game&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225481966200029286/1226727849944289341&lt;br /&gt;
|-&lt;br /&gt;
|Typing Star&lt;br /&gt;
|typing reaction game&lt;br /&gt;
|haydenkale&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/clandrew/typestar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #02 - October 25th-November 1st 2024 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Bach&#039;s MIDI Hero&lt;br /&gt;
|Free MIDI/PSG play + note play tutorial&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
the MIDI feature requires a F256K2 or F256Jr2; a legacy PSG option also allows F256K and F256Jr to still hear it. Optionally uses a MIDI in controller plugged in.&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles/releases/download/v1.2/BachHero.pgz&lt;br /&gt;
|-&lt;br /&gt;
|f256_snake&lt;br /&gt;
|&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz. Use cursor keys, Atari joystick or SNES pad to play&lt;br /&gt;
|https://github.com/rmsk2/f256_snake&lt;br /&gt;
|-&lt;br /&gt;
|fnxsnake&lt;br /&gt;
|&lt;br /&gt;
|silk-neon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/ksiondag/fnxsnake&lt;br /&gt;
|-&lt;br /&gt;
|The Hallow&lt;br /&gt;
|&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/FoenixGameJamOct2024&lt;br /&gt;
|-&lt;br /&gt;
|Halloween Birthday&lt;br /&gt;
|&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/GameJam2024_F256K&lt;br /&gt;
|-&lt;br /&gt;
|Haunted Mansion&lt;br /&gt;
|&lt;br /&gt;
|digarok&lt;br /&gt;
|superbasic&lt;br /&gt;
|https://github.com/digarok/fnxgamejam-haunted-mansion&lt;br /&gt;
|-&lt;br /&gt;
|Kooyan&lt;br /&gt;
|&lt;br /&gt;
|Grenouye&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dtremblay/kooyan.git&lt;br /&gt;
|-&lt;br /&gt;
|Spooky Run&lt;br /&gt;
|&lt;br /&gt;
|dwsJason&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dwsJason/spooky&lt;br /&gt;
|-&lt;br /&gt;
|Trick or Treat&lt;br /&gt;
|&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/TrickOrTreat&lt;br /&gt;
|-&lt;br /&gt;
|Ultima III - Exodus&lt;br /&gt;
|port&lt;br /&gt;
|Minstrel Dragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/minstreldragon/F256_Ultima_3&lt;br /&gt;
|-&lt;br /&gt;
|Warlock&lt;br /&gt;
|remake of 68000 game&lt;br /&gt;
|xDraconian&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick&lt;br /&gt;
DOWN=change_level&lt;br /&gt;
UP=jump&lt;br /&gt;
UP-LEFT=leap&lt;br /&gt;
UP-RIGHT=leap&lt;br /&gt;
|https://github.com/scttgs0/Foenix_GameJam_Oct2024&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Game Jam #03 - April 18th-April 27th 2025 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Arcade Shanghai v1.2&lt;br /&gt;
|Shanghai clone&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic, keep the .bas program in root, the rest in the provided ashanghai/ folder&lt;br /&gt;
|https://github.com/econtrerasd/ashanghai/releases&lt;br /&gt;
|-&lt;br /&gt;
|Bawk Bawk Cluck Cluck&lt;br /&gt;
|Chicken themed platformer&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/FoenixGameJamApr2025&lt;br /&gt;
|-&lt;br /&gt;
|BitLadder&lt;br /&gt;
|Shoot &#039;Em Up&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz. For full sound compatibility, a Jr2 or K2 is needed. &lt;br /&gt;
Uses 4 sound chips! (PSG, SID, OPL3, MIDI)&lt;br /&gt;
|https://mu0n.itch.io/bitladder&lt;br /&gt;
|-&lt;br /&gt;
|F256_Commando&lt;br /&gt;
|Commando port&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/F256_Commando&lt;br /&gt;
|-&lt;br /&gt;
|F256_LodeRunner&lt;br /&gt;
|Lode Runner port&lt;br /&gt;
|Minstrel Dragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/minstreldragon/F256_Loderunner/releases&lt;br /&gt;
|-&lt;br /&gt;
|Mahjong&lt;br /&gt;
|Shangai clone&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_mahjong/releases&lt;br /&gt;
|-&lt;br /&gt;
|Quarth&lt;br /&gt;
|Block placement arcade game&lt;br /&gt;
|Grenouye&lt;br /&gt;
|pgz&lt;br /&gt;
|https://grenouye.itch.io/f256-quarth&lt;br /&gt;
|-&lt;br /&gt;
|Skee(ster)-Ball&lt;br /&gt;
|&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/skeeball256/tree/main&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #04 - November-December 2025 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Fallitaire&lt;br /&gt;
|A cozy fall-themed twist on Pyramid Solitaire, built for the Foenix F256K2 Game Jam!&lt;br /&gt;
|Programmer Vs World&lt;br /&gt;
|bas&lt;br /&gt;
|https://programmervsworld.itch.io/fallitaire&lt;br /&gt;
|-&lt;br /&gt;
|H.E.R.O.&lt;br /&gt;
|Port of the classic game H.E.R.O.&lt;br /&gt;
|Cibee&lt;br /&gt;
|pgz&lt;br /&gt;
|https://c1bee.itch.io/hero&lt;br /&gt;
|-&lt;br /&gt;
|Leaderboard&lt;br /&gt;
|Golf game&lt;br /&gt;
|xDraconian&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1424187774642290799/1456104940186501132&lt;br /&gt;
|-&lt;br /&gt;
|Pitfall&lt;br /&gt;
|Port of the classic Pitfall game from Activision&lt;br /&gt;
|MinstrelDragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://minstrel.itch.io/pitfall-foenix-f256x&lt;br /&gt;
|-&lt;br /&gt;
|Return of the Falcon&lt;br /&gt;
|&lt;br /&gt;
|Callisto&lt;br /&gt;
|TBD&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Swicheroo&lt;br /&gt;
|An Alternate Puzzle Game&lt;br /&gt;
|jbaker8935&lt;br /&gt;
|pgz&lt;br /&gt;
|https://jbaker8935.itch.io/switcheroo&lt;br /&gt;
|-&lt;br /&gt;
|Track Day&lt;br /&gt;
|v1.0 top down race game vs computer controlled opponents&lt;br /&gt;
|MikeC&lt;br /&gt;
|pgz&lt;br /&gt;
|https://mcassera.itch.io/track-day-racing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Music ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|cozyMIDI&lt;br /&gt;
|Plays a SMF with the SAM2695 or VS1053b &lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|cozyMIDI v2.7 can open and play type 0 and type 1 standard MIDI files (SMF)&lt;br /&gt;
needs a Jr2 or K2&lt;br /&gt;
with a 2x core at https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
run operation 1: just as itself, it will force you to pick a midi file in the &#039;midi/&#039; folder /- cozymidi&lt;br /&gt;
&lt;br /&gt;
run operation 2: in f/manager, if you put this as &amp;lt;code&amp;gt;midiplayer.pgz&amp;lt;/code&amp;gt;in the &#039;_apps/&#039; folder, f/manager will open midi file with it when you launch .mid files. &lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/cozymidi.pgz&lt;br /&gt;
|-&lt;br /&gt;
|digestMidi&lt;br /&gt;
|converts .mid to .dim&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|.mid files are slow to load, parse and prepare for a playback. This tool comes in to convert them into a .dim format that strips out unnecessary MIDI commands and sets it up for timer0 time delays. Works with type 0 and type 1 standard midi files. This tools does the conversion and lets you hear the result.&lt;br /&gt;
Find the latest version here: https://github.com/Mu0n/F256MiscGoodies/tree/main/apps&lt;br /&gt;
|-&lt;br /&gt;
|EdInHisLib&lt;br /&gt;
|SID+OPL3 simultaneously&lt;br /&gt;
|beethead, ported from xantax&lt;br /&gt;
|pgz&lt;br /&gt;
|F256 port: https://discordapp.com/channels/691915291721990194/1054249926521016392/1184413356598231120&lt;br /&gt;
original: &amp;lt;nowiki&amp;gt;https://csdb.dk/release/?id=170898&amp;lt;/nowiki&amp;gt;. Not 100% accurate but close.&lt;br /&gt;
|-&lt;br /&gt;
|F256amp&lt;br /&gt;
|mp3, ogg, wav, wma file playback&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|(aka audioplayer.pgz) v2.3 Needs a Jr.2 or K2 since it uses the VS1053b chip.&lt;br /&gt;
For a starter collection of .mp3 and other audio files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
run operation 1: just as itself, it will force you to pick an audio file. it expects a &amp;lt;code&amp;gt;media/mp3/&amp;lt;/code&amp;gt; folder, but it can live without it and peek into the root instead. &lt;br /&gt;
&lt;br /&gt;
run operation 2: with an argument, it will auto-play it: /- f256amp yourmp3file.mp3 &lt;br /&gt;
&lt;br /&gt;
run operation 3:  in f/manager, if you put this as &amp;lt;code&amp;gt;audioplayer.pgz&amp;lt;/code&amp;gt; in the &#039;_apps/&#039; folder. This lets f/manager automatically open up .mp3, .wav, .ogg, .wma that you press enter on.&lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/f256amp.pgz&lt;br /&gt;
|-&lt;br /&gt;
|FireJam&lt;br /&gt;
|all chips, music playing with MIDI in&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v1.2 MIDI in and out capable, it will still partially work with a Jr. (PSG, and SID if you have them), a K (PSG, SID, OPL3) and the newest wave 2 Jr2 and K2 (PSG, SID, OPL3, SAM, VS1053b).&lt;br /&gt;
Best to use with a MIDI in controller, but it&#039;ll be controllable with arrows and space to make notes individually, or the F keys to start beats. https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
|-&lt;br /&gt;
|jrtracker&lt;br /&gt;
|Tracker based in basic and uses the PSG&lt;br /&gt;
(considered obsolete, use tracker2)&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://ptb.discord.com/channels/691915291721990194/1008139105386889346/1188292876984143983&lt;br /&gt;
|-&lt;br /&gt;
|modo&lt;br /&gt;
|MOD player using the PSG&lt;br /&gt;
|dwsJason and digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discordapp.com/channels/691915291721990194/855689509520932885/1190723114661859429&lt;br /&gt;
|-&lt;br /&gt;
|Musik&lt;br /&gt;
|Music piece demo using MIDI&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/Musik/blob/main/Musik.PGZ&amp;lt;nowiki/&amp;gt;Musikalisches Würfelspiel&lt;br /&gt;
Requires a Jr2 or K2 since it uses MIDI&lt;br /&gt;
|-&lt;br /&gt;
|opl3snooper&lt;br /&gt;
|playback of VGM files (that use opl2 and opl3) and MIDI in&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v1.1 mainly plays back vgm files, but you can pause it and snoop around the channel instruments and play up to 18 note polyphony with MIDI in. expects a collection in media/vgm/, or it will browse from the root if it can&#039;t find.  &lt;br /&gt;
It can load a .spl (Simple PLaylist) text file, which is one file per line, including their respective paths. &lt;br /&gt;
Requires a Jr2 or K2 with a 2x core to use the extra bank of SRAM.&lt;br /&gt;
For a starter collection of .vgm files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
run operation 1: just as itself, it will force you to pick a midi file in the &#039;media/vgm/&#039; folder &lt;br /&gt;
&lt;br /&gt;
run operation 2: in f/manager (v1.1b9 and up), if you put this as &amp;lt;code&amp;gt;vgmplayer.pgz&amp;lt;/code&amp;gt;in the &#039;_apps/&#039; folder, f/manager will open midi file with it when you launch .vgm files. &lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/opl3snooper.pgz &lt;br /&gt;
|-&lt;br /&gt;
|opl3tweak&lt;br /&gt;
|uses MIDI in, plays 18 channels polyphony in real time to the YMF262 OPL3. Fish for random register values.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v0.1. Can&#039;t save or load instrument definitions yet. Needs a K2 with a MIDI in currently.  https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/opl3tweak.pgz&lt;br /&gt;
Arrows to move around, + and - keys to incr/decr values or type in a hex value directly under the highlighted position.&lt;br /&gt;
|-&lt;br /&gt;
|piano&lt;br /&gt;
|Plays some PSG notes with the keyboard&lt;br /&gt;
|Mu0n&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles?tab=readme-ov-file#pulse-sound-generator-piano&lt;br /&gt;
|-&lt;br /&gt;
|playvgm&lt;br /&gt;
|plays a headless vgm file with OPL3&lt;br /&gt;
|G33kyAndIKnowIt&lt;br /&gt;
|pgx&lt;br /&gt;
|https://github.com/natebarney/playvgm-f256k&lt;br /&gt;
some example music files can be gotten from this post:&lt;br /&gt;
[https://discord.com/channels/691915291721990194/975117322836656138/1220366429640065074 https://discord.com/channels/6][https://discord.com/channels/691915291721990194/975117322836656138/1220366429640065074 91915291721990194/975117322836656138/1220366429640065074]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) open a normal .vgm into a hex editor &amp;lt;nowiki/&amp;gt;and cut out the header bytes from 0x00 to 0x&amp;lt;nowiki/&amp;gt;FF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) run by first using superbasic&#039;s &#039;&#039;&#039;&#039;&#039;bload&#039;&#039;&#039;&#039;&#039; &#039;&#039;&#039;&#039;&#039;&amp;quot;yourmusicfile&amp;quot;, $01000&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
followed by running this program with &#039;&#039;&#039;&#039;&#039;/- playvgm.pgx&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|sidtweak&lt;br /&gt;
|uses MIDI in, plays 6 channels polyphony in real time to the dual SID. Fish for random register values.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v0.1. Can&#039;t save or load instrument definitions yet. Needs a K2 with a MIDI in currently. https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/sidtweak.pgz&lt;br /&gt;
Arrows to move around, + and - keys to incr/decr values or type in a hex value directly under the highlighted position.&lt;br /&gt;
|-&lt;br /&gt;
|rawsidplayer&lt;br /&gt;
|plays raw PSID files from the HVSC collection, converted by zigreSID&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|(formely psidplayer) v0.2 find rawsidplayer.pgz and a starter .rsd file (raw sid dumps). For a starter collection of .rsd files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection &lt;br /&gt;
extract sid.zip into a folder /sid/ in the root of your SD card, that&#039;s where psidplayer.pgz will first look to let you pick a file. failing that, it will fall back to the root folder and let you navigate.&lt;br /&gt;
&lt;br /&gt;
program link:&lt;br /&gt;
&lt;br /&gt;
https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/rawsidplayer.pgz&lt;br /&gt;
|-&lt;br /&gt;
|tracker2 v1.5&lt;br /&gt;
|Like jrtracker.bas, but using both PSGs&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/econtrerasd/Tracker2/releases&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Uti&amp;lt;nowiki/&amp;gt;lities ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Descrip&amp;lt;nowiki/&amp;gt;tion&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|basic2text&lt;br /&gt;
|A simple utility for translating Commodore BASIC (all variants) from its native tokenized file format to a text format that can be opened with SuperBASIC. Does not perform any code translation: all adaptation is up to you. &lt;br /&gt;
|Micah&lt;br /&gt;
|pgZ&lt;br /&gt;
|https://github.com/WartyMN/F256-BasText/releases/latest&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|dcopy&lt;br /&gt;
|A tool to copy files from one drive to another or to/from your PC via RS-232 and a nullmodem cable&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz/flash&lt;br /&gt;
|https://github.com/rmsk2/f256_dcopy&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|f/manager&lt;br /&gt;
|A general file utility, launcher, and memory viewing program. Dual-panel file/memory browsers; copy between disks,  between folders on same disk, and from memory to disk and vice versa; delete, rename, and duplicate files; view files as hex or text (with word-wrap); launch applications and known file types; set the RTC clock; search in RAM and flash. Works with internal SD card and IEC devices such as FNX1591 and Commodore 1541. Can be installed in primary flash position ahead of SuperBASIC or DOS, or at a higher location. Can also be run from disk with &amp;quot;- fm.pgz&amp;quot;.&lt;br /&gt;
|Micah&lt;br /&gt;
|pgZ/flash&lt;br /&gt;
|https://github.com/WartyMN/F256-FileManager/releases&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|f256_reset&lt;br /&gt;
|A small utility that lets you reset the machine through this piece of flash software&lt;br /&gt;
|mgr42&lt;br /&gt;
|flash&lt;br /&gt;
|https://github.com/rmsk2/f256_reset&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|fcart&lt;br /&gt;
|A program that allows to write data to flash expansion cartridges &lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz, on-board and cartridge flash&lt;br /&gt;
|https://github.com/rmsk2/cartflash&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|flashcart&lt;br /&gt;
|Allows to wipe a block of flash or write a program to a flash cart, from this basic program from the F256Jr/K&lt;br /&gt;
|redfool.&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Red-Fool/F256_FlashCart/tree/main&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|flashselect&lt;br /&gt;
|Allows to select a program to start from a flash cartridge via a menu&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz, on-board and cartridge flash&lt;br /&gt;
|https://github.com/rmsk2/flashselect&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|fonts&lt;br /&gt;
|A variety of fonts using the standard F256 character set arrangement. Load with the F256 file manager (f/manager), or your own code.&lt;br /&gt;
|Micah&lt;br /&gt;
|(not a program)&lt;br /&gt;
|[https://github.com/WartyMN/Foenix-Fonts/tree/main https://github.com/WartyMN/Foenix-Fonts]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|midiStuff&lt;br /&gt;
|Test program for a F256K2 or F256Jr2 that sends MIDI data to the internal sam2695 dream chip that produces MIDI based audio. Also test a keyboard controller plugged in the MIDI in port.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles/blob/main/README.md#midistuff&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|moreorless&lt;br /&gt;
|A text editor for the Foenix 256 line of computers&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/moreorless/releases/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pgz2flash&lt;br /&gt;
|A program for your Linux, Windows or MacOS machine to turn any PGZ or SuperBASIC program into a KUP which can be run from cartridge or onboard flash memory&lt;br /&gt;
|mgr42&lt;br /&gt;
|Executable for modern computers&lt;br /&gt;
|https://github.com/rmsk2/pgz2flash&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|sidTester&lt;br /&gt;
|Simple superbasic program that tests out all 3 voices of the SID1 on the Jr (if populated), K, Jr2 and K2. Ported by Mu0n, made by andy on HackJunk.com https://hackjunk.com/2017/11/07/commodore-64-sid-tester/&lt;br /&gt;
|andy&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/blob/main/apps/sidtester.bas&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|testsuite.bas&lt;br /&gt;
|a series of tests for your F256, video modes and sound chips&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|run from the root, &lt;br /&gt;
https://github.com/econtrerasd/testSuite-F256/releases&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|wget&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|&amp;lt;nowiki/&amp;gt;fetches a file from a http address if you have a network connection active. Works with the K and Jr. ESP32 Feather &#039;huzzah&#039; board. Not meant to be used with the K2 and Jr2 Wiznet chip.&lt;br /&gt;
|gadget&lt;br /&gt;
|&amp;lt;nowiki/&amp;gt;pgz/flash&lt;br /&gt;
|https://github.com/ghackwrench/F256_wget&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sample Code ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Assembly examples&lt;br /&gt;
|Sample programs for several features of the Foenix F256K and Jr.&lt;br /&gt;
|mgr42&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/rmsk2/Hello_Foenix256_Jr/blob/main/testprogs.md&lt;br /&gt;
|-&lt;br /&gt;
|cc65 example&lt;br /&gt;
|c example code&lt;br /&gt;
|gadget&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/ghackwrench/F256_Jr_Kernel_DOS&lt;br /&gt;
|-&lt;br /&gt;
|digarok basic stuff&lt;br /&gt;
|Lots of basic examples&lt;br /&gt;
|digarok&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/digarok/superbasic-traveler/tree/main&lt;br /&gt;
|-&lt;br /&gt;
|MikeC repos&lt;br /&gt;
|Various projects in assembly&lt;br /&gt;
|MikeC&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/mcassera&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K asm doodles&lt;br /&gt;
|Some asm examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleASMdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K basic doodles&lt;br /&gt;
|Some basic examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K C doodles&lt;br /&gt;
|Some C examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Raúl SQ basic repo&lt;br /&gt;
|F256 SuperBASIC Trigonometry&lt;br /&gt;
|Raúl SQ&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/raul-sq/FoenixF256K2&lt;br /&gt;
|-&lt;br /&gt;
|tcp example&lt;br /&gt;
|connects to a server and gets typed in text echoed back to you&lt;br /&gt;
|gadget&lt;br /&gt;
|$2000&lt;br /&gt;
|https://github.com/ghackwrench/F256_example_tcp&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Glossary&amp;diff=38419</id>
		<title>Glossary</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Glossary&amp;diff=38419"/>
		<updated>2026-01-27T17:17:29Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: various changes to add the Wildbits keyword in relevant places&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Wildbits / Foenix F256 Glossary =&lt;br /&gt;
&lt;br /&gt;
{{Short description|Reference guide to F256 hardware, software, and technical terminology}}&lt;br /&gt;
&lt;br /&gt;
A comprehensive glossary of terms, acronyms, and concepts from the F256 ecosystem.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Computer Models ==&lt;br /&gt;
&lt;br /&gt;
; F256Jr&lt;br /&gt;
: First-generation &amp;quot;Junior&amp;quot; model featuring WDC 65C02 CPU, 512KB SRAM, Cyclone IV FPGA, and [[TinyVicky]] graphics.&lt;br /&gt;
&lt;br /&gt;
; F256Jr2 (Jr.Jr.)&lt;br /&gt;
: Second-generation Junior model with WDC 65C816 CPU, 2MB SRAM, Artix 7 FPGA, and TinyVicky II graphics. See [[Product_Specifications]].&lt;br /&gt;
&lt;br /&gt;
; F256K&lt;br /&gt;
: First-generation keyboard-integrated model with same specs as F256Jr plus built-in mechanical keyboard.&lt;br /&gt;
&lt;br /&gt;
; F256K2&lt;br /&gt;
: Second-generation keyboard model with 65816, 2MB SRAM, 128MB DDR3 DRAM, Artix 7 XC7A200T FPGA, and Vicky &amp;quot;The Fourth&amp;quot; graphics.&lt;br /&gt;
&lt;br /&gt;
; Foenix Retro Systems&lt;br /&gt;
: Brand name for the retro computer line created by Stefany Allaire.&lt;br /&gt;
&lt;br /&gt;
;Wildbits/Jr2&lt;br /&gt;
: New name for the SBC formerly known as the F256Jr2. Second-generation Junior model with WDC 65C816 CPU, 2MB SRAM, Artix 7 FPGA, and TinyVicky II graphics. See [[Product_Specifications]].&lt;br /&gt;
&lt;br /&gt;
;Wildbits/K2&lt;br /&gt;
: New name for the keyboard model formerly known as the F256K2. Second-generation keyboard model with 65816, 2MB SRAM, 128MB DDR3 DRAM, Artix 7 XC7A200T FPGA, and Vicky &amp;quot;The Fourth&amp;quot; graphics.&lt;br /&gt;
&lt;br /&gt;
; Wildbits Computing Company&lt;br /&gt;
: New owner of the computer line formerly known as F256. Now branded as Wildbits/K2, Wildbits/Jr2&lt;br /&gt;
&lt;br /&gt;
== Processors ==&lt;br /&gt;
&lt;br /&gt;
; 6502&lt;br /&gt;
: Classic 8-bit CPU from MOS Technology (1975), the foundation architecture for the F256/Wildbits series.&lt;br /&gt;
&lt;br /&gt;
; WDC 65C02&lt;br /&gt;
: Western Design Center&#039;s CMOS version of the 6502 with lower power consumption and additional instructions. Default CPU in first-gen F256 models.&lt;br /&gt;
&lt;br /&gt;
; WDC 65C816 (65816)&lt;br /&gt;
: 16-bit upgrade to the 65C02 with 24-bit addressing (up to 16MB) and selectable 8/16-bit registers. See [[65816_Overview]].&lt;br /&gt;
&lt;br /&gt;
; FNX6809&lt;br /&gt;
: FPGA-based implementation of the Motorola 6809 CPU that can ran on first gen F256 hardware as an addon DIP PCB board. See [[FNX6809_Overview]].&lt;br /&gt;
&lt;br /&gt;
;6809&lt;br /&gt;
: FPGA-based implementation of the Motorola 6809 CPU that can run on second gen F256/Wildbits hardware. See [[FNX6809_Overview]].&lt;br /&gt;
&lt;br /&gt;
; Emulation Mode&lt;br /&gt;
: Default 65816 startup mode that behaves like a 65C02 for backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
; Native Mode&lt;br /&gt;
: 65816 mode enabling 16-bit registers, movable direct page, and full 24-bit addressing.&lt;br /&gt;
&lt;br /&gt;
; Rockwell Instructions&lt;br /&gt;
: Extended 6502 instructions (BBS, BBR, RMB, SMB) supported by 65C02 but &#039;&#039;&#039;NOT&#039;&#039;&#039; by 65816. Avoid these for 65816 compatibility.&lt;br /&gt;
&lt;br /&gt;
== FPGA &amp;amp; Hardware ==&lt;br /&gt;
&lt;br /&gt;
; FPGA&lt;br /&gt;
: Field-Programmable Gate Array; reconfigurable chip implementing the F256/Wildbits&#039;s custom logic, graphics, and sound.&lt;br /&gt;
&lt;br /&gt;
; Cyclone IV (EP4CE15)&lt;br /&gt;
: Intel/Altera FPGA used in first-gen F256 models (15,408 logic elements, 504kb BRAM).&lt;br /&gt;
&lt;br /&gt;
; Artix 7 (XC7A35T)&lt;br /&gt;
: Xilinx FPGA used in F256Jr2 or Wildbits/Jr2 (33,280 logic cells, 1,800kb BRAM).&lt;br /&gt;
&lt;br /&gt;
; Artix 7 (XC7A200T)&lt;br /&gt;
: Larger Xilinx FPGA used in F256K2 or Wildbits/K2 (215,360 logic cells, 13,140kb BRAM).&lt;br /&gt;
&lt;br /&gt;
; Core&lt;br /&gt;
: FPGA configuration/bitstream that defines the computer&#039;s behavior. See [[FPGA_Releases]].&lt;br /&gt;
&lt;br /&gt;
; Core2x&lt;br /&gt;
: Enhanced FPGA core with 2× CPU speed (12MHz), 24-bit flat addressing, 64 additional sprites, and hardware line drawing.&lt;br /&gt;
&lt;br /&gt;
; JTAG&lt;br /&gt;
: Joint Test Action Group; interface for programming the FPGA on first-gen models.&lt;br /&gt;
&lt;br /&gt;
; USB Blaster&lt;br /&gt;
: Hardware programmer used to flash FPGA via JTAG on F256Jr and F256K.&lt;br /&gt;
&lt;br /&gt;
; RP2040&lt;br /&gt;
: Raspberry Pi microcontroller that initializes the FPGA and uploads cores on second-gen models.&lt;br /&gt;
&lt;br /&gt;
; Context (CNTX)&lt;br /&gt;
: On F256K2 and Wildbits/K2, one of four FPGA core slots (CNTX1-CNTX4) selectable via [[DIP_switches]].&lt;br /&gt;
&lt;br /&gt;
; Sii9022&lt;br /&gt;
: HDMI encoder chip used on black F256K2 boards; removed in purple F256K2 and Wildbits/K2 boards where HDMI encoding moved to FPGA.&lt;br /&gt;
&lt;br /&gt;
== Graphics ==&lt;br /&gt;
&lt;br /&gt;
; TinyVicky&lt;br /&gt;
: Graphics subsystem in first-gen F256 models (F256Jr, F256K).&lt;br /&gt;
&lt;br /&gt;
; TinyVicky II&lt;br /&gt;
: Enhanced graphics subsystem in F256Jr2 and Wildbits/Jr2.&lt;br /&gt;
&lt;br /&gt;
; Vicky &amp;quot;The Fourth&amp;quot;&lt;br /&gt;
: Advanced graphics subsystem in F256K2 and Wildbits/K2.&lt;br /&gt;
&lt;br /&gt;
; VICKY&lt;br /&gt;
: General name for the Foenix and Wildbits graphics/video controller family.&lt;br /&gt;
&lt;br /&gt;
; Bitmap&lt;br /&gt;
: Graphics layer displaying pixel-mapped images directly from SRAM. Up to 3 bitmap layers available.&lt;br /&gt;
&lt;br /&gt;
; Tilemap&lt;br /&gt;
: Graphics layer displaying tiles from tilesets for efficient scrolling graphics. Up to 3 tilemap layers available.&lt;br /&gt;
&lt;br /&gt;
; Tileset&lt;br /&gt;
: Collection of tile graphics (8×8 or 16×16 pixels) referenced by tilemaps. Up to 8 tilesets supported.&lt;br /&gt;
&lt;br /&gt;
; Sprite&lt;br /&gt;
: Hardware-accelerated moveable graphic object. Sizes: 8×8, 16×16, 24×24, or 32×32 pixels. 64 sprites standard, 128 with Core2x.&lt;br /&gt;
&lt;br /&gt;
; CLUT&lt;br /&gt;
: Color Look-Up Table; palette mapping 8-bit index values to BGR colors. 4 graphics CLUTs available.&lt;br /&gt;
&lt;br /&gt;
; Gamma Correction&lt;br /&gt;
: Color brightness adjustment via lookup tables at $C000-$C8FF in IO Page 0.&lt;br /&gt;
&lt;br /&gt;
; DMA&lt;br /&gt;
: Direct Memory Access; hardware-accelerated memory copying that runs during VBlank at 100MHz.&lt;br /&gt;
&lt;br /&gt;
; Layer&lt;br /&gt;
: Graphics compositing priority. Bitmaps and tilemaps can be assigned to layers 0-2.&lt;br /&gt;
&lt;br /&gt;
== Memory ==&lt;br /&gt;
&lt;br /&gt;
; SRAM&lt;br /&gt;
: Static RAM; main system memory. 512KB on gen1 models, 2MB on gen2 models.&lt;br /&gt;
&lt;br /&gt;
; DDR3 DRAM&lt;br /&gt;
: 128MB dynamic RAM on F256K2 and Wildbits/K2 (support planned but not yet implemented).&lt;br /&gt;
&lt;br /&gt;
; Flash&lt;br /&gt;
: 512KB non-volatile memory storing [[Firmware]] and programs. Each K2 core context has its own 512KB flash area.&lt;br /&gt;
&lt;br /&gt;
; MMU&lt;br /&gt;
: Memory Management Unit; maps 8KB blocks of physical memory into the CPU&#039;s 64KB address space. See [[Memory_Management]].&lt;br /&gt;
&lt;br /&gt;
; MLUT&lt;br /&gt;
: Memory Lookup Table; one of four MMU configurations (MLUT 0-3) for quick switching between memory mapping states.&lt;br /&gt;
&lt;br /&gt;
; Slot&lt;br /&gt;
: One of eight 8KB regions in the CPU&#039;s 64KB address space:&lt;br /&gt;
:* Slot 0: $0000-$1FFF&lt;br /&gt;
:* Slot 1: $2000-$3FFF&lt;br /&gt;
:* Slot 2: $4000-$5FFF&lt;br /&gt;
:* Slot 3: $6000-$7FFF&lt;br /&gt;
:* Slot 4: $8000-$9FFF&lt;br /&gt;
:* Slot 5: $A000-$BFFF&lt;br /&gt;
:* Slot 6: $C000-$DFFF (IO Pages overlay this)&lt;br /&gt;
:* Slot 7: $E000-$FFFF&lt;br /&gt;
&lt;br /&gt;
; Block&lt;br /&gt;
: 8KB chunk of physical memory that can be mapped into a slot via the MMU.&lt;br /&gt;
&lt;br /&gt;
; IO Page&lt;br /&gt;
: Memory-mapped I/O region at $C000-$DFFF. Six pages available (0-5). See [[IO_Pages]].&lt;br /&gt;
&lt;br /&gt;
; Expansion Port&lt;br /&gt;
: Slot for 256KB RAM or Flash expansion cartridge. Uses PCI-Express x1 socket form factor.&lt;br /&gt;
&lt;br /&gt;
; Flat Memory&lt;br /&gt;
: Direct 24-bit addressing without MMU banking. Available in Core2x with SRAM_EN bit enabled.&lt;br /&gt;
&lt;br /&gt;
; Zero Page / Direct Page&lt;br /&gt;
: First 256 bytes of memory used for fast addressing. Moveable anywhere in first 64KB in 65816 native mode.&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
&lt;br /&gt;
; SID&lt;br /&gt;
: Sound Interface Device; Commodore 64&#039;s famous sound chip. FPGA emulated on gen2 and gen1 F256K; real chip sockets available on F256Jr.&lt;br /&gt;
&lt;br /&gt;
; PSG&lt;br /&gt;
: Programmable Sound Generator; AY-3-8910-style chip (FPGA emulated). Directly accessible at $D600. See [[Use_the_PSG]].&lt;br /&gt;
&lt;br /&gt;
; OPL3 (YMF262)&lt;br /&gt;
: Yamaha FM synthesis chip. Real chip on F256K; FPGA emulated on other models. Not present on the F256Jr. See [[Use_the_OPL3_YMF262]].&lt;br /&gt;
&lt;br /&gt;
; CODEC&lt;br /&gt;
: Audio mixer chip for digital audio output. See [[Use_the_CODEC]].&lt;br /&gt;
&lt;br /&gt;
; SAM2695&lt;br /&gt;
: Dream MIDI wavetable synthesis chip (gen2 only). See [[Use_the_Sam2695_Dream_MIDI_chip]].&lt;br /&gt;
&lt;br /&gt;
; VS1053b&lt;br /&gt;
: VLSI audio decoder/encoder chip supporting MP3, AAC, Ogg Vorbis, and more (gen2 only). See [[Use_the_VS1053b_chip]].&lt;br /&gt;
&lt;br /&gt;
; MIDI&lt;br /&gt;
: Musical Instrument Digital Interface. Gen2 models support synthesizers in SAM2695 and VS1053b, and hardware MIDI in/out ports.&lt;br /&gt;
&lt;br /&gt;
== Input/Output ==&lt;br /&gt;
&lt;br /&gt;
; PS/2&lt;br /&gt;
: Keyboard/mouse interface standard. Single port supports both keyboard and mouse. See [[Use_the_PS/2_Mouse]].&lt;br /&gt;
&lt;br /&gt;
; IEC&lt;br /&gt;
: Commodore serial bus for connecting disk drives, printers, and other peripherals.&lt;br /&gt;
&lt;br /&gt;
; VIA&lt;br /&gt;
: Versatile Interface Adapter (WDC 65C22). VIA0 handles Atari joysticks; VIA1 handles keyboard matrix on F256K series.&lt;br /&gt;
&lt;br /&gt;
; UART&lt;br /&gt;
: Universal Asynchronous Receiver-Transmitter; serial communication interface at $D630.&lt;br /&gt;
&lt;br /&gt;
; RTC&lt;br /&gt;
: Real-Time Clock; battery-backed timekeeping chip at $D690.&lt;br /&gt;
&lt;br /&gt;
; SD Card&lt;br /&gt;
: Storage medium for programs and data. Gen1 has one slot; gen2 has internal and external slots.&lt;br /&gt;
&lt;br /&gt;
; DVI&lt;br /&gt;
: Digital Visual Interface; video output on first-gen models (supports both digital and analog signals).&lt;br /&gt;
&lt;br /&gt;
; HDMI&lt;br /&gt;
: High-Definition Multimedia Interface; video output using digital TMDS signaling.&lt;br /&gt;
&lt;br /&gt;
; ESP32 Feather&lt;br /&gt;
: WiFi module for first-gen models (internal installation).&lt;br /&gt;
&lt;br /&gt;
; Wiznet&lt;br /&gt;
: Ethernet/WiFi module for second-gen models with external antenna connector. See [[Wiznet]].&lt;br /&gt;
&lt;br /&gt;
; NES/SNES Controllers&lt;br /&gt;
: Supported game controllers via dedicated pin header or Mini-DIN9 connector. See [[Use_the_SNES/NES_controllers]].&lt;br /&gt;
&lt;br /&gt;
== Software &amp;amp; Firmware ==&lt;br /&gt;
&lt;br /&gt;
; MicroKernel&lt;br /&gt;
: Primary event-based, near real-time kernel for F256 and Wildbits (developed by Gadget). Supports 65c02 and 65816 in emulation mode. See [[Kernels]].&lt;br /&gt;
&lt;br /&gt;
; OpenFNXKernal&lt;br /&gt;
: Community-developed CBM-style kernal alternative with SD Card I/O support. See [[Kernels]].&lt;br /&gt;
&lt;br /&gt;
; SuperBASIC&lt;br /&gt;
: BBC BASIC-inspired interpreter; default F256 and Wildbits programming environment. See [[SuperBASIC]].&lt;br /&gt;
&lt;br /&gt;
; DOS&lt;br /&gt;
: Minimalistic file management and information shell stored in flash.&lt;br /&gt;
&lt;br /&gt;
; F/Manager (fm)&lt;br /&gt;
: Feature-rich file manager, program launcher, and memory exploration software. See [[Firmware]].&lt;br /&gt;
&lt;br /&gt;
; Moreorless (mless)&lt;br /&gt;
: Built-in text editor stored in flash. See [[Moreorless]].&lt;br /&gt;
&lt;br /&gt;
; FoenixMgr&lt;br /&gt;
: Python scripts for uploading code, flashing firmware, and managing the F256 and Wildbits from a PC or Mac.&lt;br /&gt;
&lt;br /&gt;
; xdev&lt;br /&gt;
: Development trampoline firmware component that reacts to FoenixMgr commands (pcopy, runpgz, runpgx).&lt;br /&gt;
&lt;br /&gt;
; CartFlasher (fcart)&lt;br /&gt;
: Utility for programming the 256KB Flash Cartridge with 8KB prepared blocks.&lt;br /&gt;
&lt;br /&gt;
; pexec&lt;br /&gt;
: Kernel routine for loading and executing PGX/PGZ format programs.&lt;br /&gt;
&lt;br /&gt;
== File Formats ==&lt;br /&gt;
&lt;br /&gt;
; KUP&lt;br /&gt;
: Kernel User Program; simple executable format for flash-resident or disk-loaded programs. Header contains signature ($F256), size, slot, and entry point. See [[File_Formats]].&lt;br /&gt;
&lt;br /&gt;
; PGX&lt;br /&gt;
: Single-segment executable with 8-byte header. Similar to MS-DOS COM or Commodore PRG format. See [[File_Formats]].&lt;br /&gt;
&lt;br /&gt;
; PGZ&lt;br /&gt;
: Multi-segment executable format; can load code/data to multiple memory locations. Supports both 24-bit (&#039;Z&#039;) and 32-bit (&#039;z&#039;) addressing. See [[File_Formats]].&lt;br /&gt;
&lt;br /&gt;
; Binary&lt;br /&gt;
: Raw memory image requiring known load address and boot-to-RAM mode. Development use only.&lt;br /&gt;
&lt;br /&gt;
; .bin&lt;br /&gt;
: FPGA core file extension used on F256K2&#039;s and Wildbits/K2&#039;s FPGA load SD card.&lt;br /&gt;
&lt;br /&gt;
; .uf2&lt;br /&gt;
: RP2040 firmware file format for second-gen models.&lt;br /&gt;
&lt;br /&gt;
== Technical Terms ==&lt;br /&gt;
&lt;br /&gt;
; IRQ&lt;br /&gt;
: Interrupt Request; hardware signal for event-driven programming. See [[IRQ]] and [[IRQ_Programming]].&lt;br /&gt;
&lt;br /&gt;
; NMI&lt;br /&gt;
: Non-Maskable Interrupt; cannot be disabled by software.&lt;br /&gt;
&lt;br /&gt;
; SOF&lt;br /&gt;
: Start of Frame interrupt; triggered at beginning of VSYNC.&lt;br /&gt;
&lt;br /&gt;
; SOL&lt;br /&gt;
: Start of Line interrupt; triggered at configurable scanline.&lt;br /&gt;
&lt;br /&gt;
; VBlank&lt;br /&gt;
: Vertical blanking interval; period between video frames when DMA runs.&lt;br /&gt;
&lt;br /&gt;
; PHI2&lt;br /&gt;
: CPU clock signal phase 2; active high when CPU is accessing the bus.&lt;br /&gt;
&lt;br /&gt;
; R/W&lt;br /&gt;
: Read/Write signal line (Read = high, Write = low).&lt;br /&gt;
&lt;br /&gt;
; BGR / BGRx&lt;br /&gt;
: Color format: Blue, Green, Red byte order. BGRx adds unused padding byte for 4-byte alignment.&lt;br /&gt;
&lt;br /&gt;
; Little Endian&lt;br /&gt;
: Byte ordering with least significant byte at lowest address. Used throughout the F256.&lt;br /&gt;
&lt;br /&gt;
; BCD&lt;br /&gt;
: Binary-Coded Decimal; number encoding where each nibble represents a decimal digit (0-9). Used in RTC.&lt;br /&gt;
&lt;br /&gt;
== DIP Switch Settings ==&lt;br /&gt;
&lt;br /&gt;
DIP switches configure boot behavior and hardware options. See [[DIP_switches]].&lt;br /&gt;
&lt;br /&gt;
; Boot-from-RAM&lt;br /&gt;
: When enabled, kernel searches first 48KB of RAM for programs before checking flash.&lt;br /&gt;
&lt;br /&gt;
; Gamma Enable&lt;br /&gt;
: Enables color gamma correction.&lt;br /&gt;
&lt;br /&gt;
; Core Select (K2)&lt;br /&gt;
: Two switches select which FPGA context (1-4) to load on F256K2.&lt;br /&gt;
&lt;br /&gt;
== Key Register Addresses ==&lt;br /&gt;
&lt;br /&gt;
; $0000 (MMU_MEM_CTRL)&lt;br /&gt;
: MMU Memory Control Register; selects active MLUT and enables editing.&lt;br /&gt;
&lt;br /&gt;
; $0001 (MMU_IO_CTRL)&lt;br /&gt;
: MMU I/O Control Register; selects IO page and controls memory mapping flags.&lt;br /&gt;
&lt;br /&gt;
; $D000 (MSTR_CTRL)&lt;br /&gt;
: VICKY Master Control Register; enables text, graphics, sprites, tiles, bitmaps.&lt;br /&gt;
&lt;br /&gt;
; $D660 (INT_PENDING)&lt;br /&gt;
: Interrupt Pending flags (24-bit).&lt;br /&gt;
&lt;br /&gt;
; $D66C (INT_MASK)&lt;br /&gt;
: Interrupt Mask register (24-bit).&lt;br /&gt;
&lt;br /&gt;
; $D6A0 (SYS0)&lt;br /&gt;
: System Control Register; controls LEDs, reset, and reads SD card status.&lt;br /&gt;
&lt;br /&gt;
== Development Tools ==&lt;br /&gt;
&lt;br /&gt;
; Calypsi&lt;br /&gt;
: C compiler supporting 6502, 65816, and 6809 for F256 development.&lt;br /&gt;
&lt;br /&gt;
; 64tass&lt;br /&gt;
: Popular cross-assembler for 6502/65816.&lt;br /&gt;
&lt;br /&gt;
; cc65&lt;br /&gt;
: C compiler and toolchain for 6502.&lt;br /&gt;
&lt;br /&gt;
;llvm-mos&lt;br /&gt;
: C compiler and toolchain for 6502.&lt;br /&gt;
&lt;br /&gt;
; Quartus Prime Lite&lt;br /&gt;
: Intel FPGA programming software. Version 18.1 required for Cyclone IV on gen1 models.&lt;br /&gt;
&lt;br /&gt;
; openFPGALoader&lt;br /&gt;
: Open-source FPGA programming tool for Linux and macOS.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
* [[Memory_Management]]&lt;br /&gt;
* [[IO_Pages]]&lt;br /&gt;
* [[Firmware]]&lt;br /&gt;
* [[SuperBASIC]]&lt;br /&gt;
* [[FPGA_Releases]]&lt;br /&gt;
* [[Getting_Started]]&lt;br /&gt;
&lt;br /&gt;
[[index.php?title=Category:Reference]]&lt;br /&gt;
[[index.php?title=Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Template:Main2/Getting_Started&amp;diff=38418</id>
		<title>Template:Main2/Getting Started</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Template:Main2/Getting_Started&amp;diff=38418"/>
		<updated>2026-01-27T17:06:00Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: added link to glossary page from Cibee&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Getting Started&#039;&#039;&#039;&lt;br /&gt;
* [[Product Specifications]]&lt;br /&gt;
* [[Getting Started]]&lt;br /&gt;
* [[Glossary]]&lt;br /&gt;
* [[Manuals]]&lt;br /&gt;
* [[Software for 6502]]&lt;br /&gt;
* [[Software for 65816]]&lt;br /&gt;
* [[Emulation]]&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Use_the_SNES/NES_controllers&amp;diff=38395</id>
		<title>Use the SNES/NES controllers</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Use_the_SNES/NES_controllers&amp;diff=38395"/>
		<updated>2026-01-13T19:50:23Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Usage */ fixed the NES example code externally linked and added the 2x core delays when triggering in the text examples on this wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== NES and SNES controllers ==&lt;br /&gt;
The F256 machines can use these controllers provided they are equipped with an optional [https://c256foenix.com/product/fnx4n4s/?v=5435c69ed3bc FNX4N4S breakout adapter]. &lt;br /&gt;
&lt;br /&gt;
The official gamepads of yesteryear work without issue with this and are plentiful in the used market. &lt;br /&gt;
&lt;br /&gt;
Third party modern recreations are sometimes flaky or not working at all. Share you discoveries in the discord! &lt;br /&gt;
&lt;br /&gt;
Super famicom gamepads work very well as substitute for regular SNES gamepads.&lt;br /&gt;
[[File:Full complement of gamepads.png|thumb|A fully populated FNX4N4S for the F256K2]]&lt;br /&gt;
&lt;br /&gt;
=== Registers ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Register Name&lt;br /&gt;
!R/W&lt;br /&gt;
!Address&lt;br /&gt;
!NES/SNES&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|PAD_CTRL&lt;br /&gt;
|W&lt;br /&gt;
|0xD880&lt;br /&gt;
|both&lt;br /&gt;
|Used to trigger a reading and setting the NES/SNES mode&lt;br /&gt;
|-&lt;br /&gt;
|PAD_STAT&lt;br /&gt;
|R&lt;br /&gt;
|0xD880&lt;br /&gt;
|both&lt;br /&gt;
|Used to verify if the triggered polling of gamepad state is done yet&lt;br /&gt;
|-&lt;br /&gt;
|PAD0&lt;br /&gt;
|R&lt;br /&gt;
|0xD884&lt;br /&gt;
|both&lt;br /&gt;
|Buttons statuses: if cleared, they are pressed. If set, they are unpressed.&lt;br /&gt;
|-&lt;br /&gt;
|PAD0_S&lt;br /&gt;
|R&lt;br /&gt;
|0xD885&lt;br /&gt;
|SNES&lt;br /&gt;
|Same deal; unused by NES. Consult button table below&lt;br /&gt;
|-&lt;br /&gt;
|PAD1&lt;br /&gt;
|R&lt;br /&gt;
|0xD886&lt;br /&gt;
|both&lt;br /&gt;
|Buttons statuses: if cleared, they are pressed. If set, they are unpressed.&lt;br /&gt;
|-&lt;br /&gt;
|PAD1_S&lt;br /&gt;
|R&lt;br /&gt;
|0xD887&lt;br /&gt;
|SNES&lt;br /&gt;
|Same deal; unused by NES. Consult button table below&lt;br /&gt;
|-&lt;br /&gt;
|PAD2&lt;br /&gt;
|R&lt;br /&gt;
|0xD888&lt;br /&gt;
|both&lt;br /&gt;
|Buttons statuses: if cleared, they are pressed. If set, they are unpressed.&lt;br /&gt;
|-&lt;br /&gt;
|PAD2_S&lt;br /&gt;
|R&lt;br /&gt;
|0xD889&lt;br /&gt;
|SNES&lt;br /&gt;
|Same deal; unused by NES. Consult button table below&lt;br /&gt;
|-&lt;br /&gt;
|PAD3&lt;br /&gt;
|R&lt;br /&gt;
|0xD88A&lt;br /&gt;
|both&lt;br /&gt;
|Buttons statuses: if cleared, they are pressed. If set, they are unpressed.&lt;br /&gt;
|-&lt;br /&gt;
|PAD3_S&lt;br /&gt;
|R&lt;br /&gt;
|0xD88B&lt;br /&gt;
|SNES&lt;br /&gt;
|Same deal; unused by NES. Consult button table below&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Control register ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Register Name&lt;br /&gt;
!R/W&lt;br /&gt;
!Address&lt;br /&gt;
!Bit7&lt;br /&gt;
!Bit6&lt;br /&gt;
!Bit5&lt;br /&gt;
!Bit4&lt;br /&gt;
!Bit3&lt;br /&gt;
!Bit2&lt;br /&gt;
!Bit1&lt;br /&gt;
!Bit0&lt;br /&gt;
|-&lt;br /&gt;
|PAD_CTRL&lt;br /&gt;
|W&lt;br /&gt;
|0xD880&lt;br /&gt;
|NES_TRIG&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|MODE&lt;br /&gt;
| -&lt;br /&gt;
|EN&lt;br /&gt;
|-&lt;br /&gt;
|PAD_STAT&lt;br /&gt;
|R&lt;br /&gt;
|0xD880&lt;br /&gt;
|NES_TRIG&lt;br /&gt;
|DONE&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|MODE&lt;br /&gt;
| -&lt;br /&gt;
|EN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Control register bit states: ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Bit Name&lt;br /&gt;
!If set to 1&lt;br /&gt;
!If cleared to 0&lt;br /&gt;
|-&lt;br /&gt;
|NES_TRIG&lt;br /&gt;
|Launches the polling of the states of all buttons&lt;br /&gt;
|Stops polling the states of all buttons&lt;br /&gt;
|-&lt;br /&gt;
|DONE&lt;br /&gt;
|The states of the buttons are ready to be read&lt;br /&gt;
|The states of the buttons are not ready&lt;br /&gt;
|-&lt;br /&gt;
|MODE&lt;br /&gt;
|SNES data will be used to populate the PAD registers&lt;br /&gt;
|NES data will be used to populate the PAD registers&lt;br /&gt;
|-&lt;br /&gt;
|EN&lt;br /&gt;
|Enables the gamepads&lt;br /&gt;
|Disables the gamepads&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Button table ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!MODE&lt;br /&gt;
!NES/SNES&lt;br /&gt;
!Address&lt;br /&gt;
!Pad&lt;br /&gt;
!Bit7&lt;br /&gt;
!Bit6&lt;br /&gt;
!Bit5&lt;br /&gt;
!Bit4&lt;br /&gt;
!Bit3&lt;br /&gt;
!Bit2&lt;br /&gt;
!Bit1&lt;br /&gt;
!Bit0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|NES&lt;br /&gt;
|0xD884&lt;br /&gt;
|0&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|NES&lt;br /&gt;
|0xD886&lt;br /&gt;
|1&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|NES&lt;br /&gt;
|0xD888&lt;br /&gt;
|2&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|NES&lt;br /&gt;
|0xD88A&lt;br /&gt;
|3&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD884&lt;br /&gt;
|0&lt;br /&gt;
|B&lt;br /&gt;
|Y&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD885&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|A&lt;br /&gt;
|X&lt;br /&gt;
|L&lt;br /&gt;
|R&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD886&lt;br /&gt;
|1&lt;br /&gt;
|B&lt;br /&gt;
|Y&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD887&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|A&lt;br /&gt;
|X&lt;br /&gt;
|L&lt;br /&gt;
|R&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD888&lt;br /&gt;
|2&lt;br /&gt;
|B&lt;br /&gt;
|Y&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD889&lt;br /&gt;
|2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|A&lt;br /&gt;
|X&lt;br /&gt;
|L&lt;br /&gt;
|R&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD88A&lt;br /&gt;
|3&lt;br /&gt;
|B&lt;br /&gt;
|Y&lt;br /&gt;
|Select&lt;br /&gt;
|Start&lt;br /&gt;
|Up&lt;br /&gt;
|Down&lt;br /&gt;
|Left&lt;br /&gt;
|Right&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|SNES&lt;br /&gt;
|0xD88B&lt;br /&gt;
|3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|A&lt;br /&gt;
|X&lt;br /&gt;
|L&lt;br /&gt;
|R&lt;br /&gt;
|}&lt;br /&gt;
Note: L refers to the left shoulder button and R refers to the right shoulder button.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
Example 1: polling a NES controller in PAD0 position and checking if A is pressed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POKE(PAD_CTRL, 0b10000001); //trigger, nes mode, enabled&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
POKE(PAD_CTRL, 0b00000001); //clear trigger&lt;br /&gt;
while((PEEK(PAD_STAT) &amp;amp; 0x40) == 0) //loop while this bit is cleared&lt;br /&gt;
      ;&lt;br /&gt;
if((PEEK(PAD0) &amp;amp; 0x80) == 0) reactToAPressed();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2: polling a SNES controller in PAD2 position and checking if X is pressed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POKE(PAD_CTRL, 0b10000101); //trigger, snes mode, enabled&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
POKE(PAD_CTRL, 0b00000101); //clear trigger&lt;br /&gt;
while((PEEK(PAD_STAT) &amp;amp; 0x40) == 0) //loop while this bit is cleared&lt;br /&gt;
      ;&lt;br /&gt;
if((PEEK(PAD2_S) &amp;amp; 0x04) == 0) reactToXPressed();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 3: polling both types of controller in rapid succession (allows the usage of all 8 controllers!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//NES section&lt;br /&gt;
POKE(PAD_CTRL, 0b10000001); //trigger, nes mode, enabled&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
POKE(PAD_CTRL, 0b00000001); //clear trigger&lt;br /&gt;
while((PEEK(PAD_STAT) &amp;amp; 0x40) == 0) //loop while this bit is cleared&lt;br /&gt;
      ;&lt;br /&gt;
//section where reactions are made to the various NES presses&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//SNES section&lt;br /&gt;
POKE(PAD_CTRL, 0b10000101); //trigger, snes mode, enabled&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
ASM(&amp;quot;NOP&amp;quot;); //a necessary delay with the 2x speed core&lt;br /&gt;
POKE(PAD_CTRL, 0b00000101); //clear trigger&lt;br /&gt;
while((PEEK(PAD_STAT) &amp;amp; 0x40) == 0) //loop while this bit is cleared&lt;br /&gt;
      ;&lt;br /&gt;
//section where reactions are made to the various SNES presses&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Source code example in C: ===&lt;br /&gt;
Check out this simple example displaying the statuses of all 4 NES pads on screen, using hex: https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NES/src&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=FPGA_Releases&amp;diff=38388</id>
		<title>FPGA Releases</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=FPGA_Releases&amp;diff=38388"/>
		<updated>2026-01-13T09:09:03Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: K2 purple core 1x and flat map core 1x&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# move the FG &amp;amp; BG Text LUT to:&lt;br /&gt;
&lt;br /&gt;
=== Important: ===&lt;br /&gt;
Most users will want to consume the &amp;quot;Firmware package relases&amp;quot; (taken from here: https://github.com/FoenixRetro/f256-firmware/releases. )  which contain both the latest of the FPGA releases seen here on this page, and the kernel/base programs intended for the flash memory. The page you&#039;re ready here is meant for power user who would want to test back compatibility or attempt some roll-backs in case bugs are found, and for readers who want to learn about the release notes of each new FPGA version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(* &amp;quot;Purple&amp;quot; refers to the official 2025+ release of the K2; &amp;quot;Black&amp;quot; refers to the first run of K2B boards sent out to the original F256K owners in late 2024)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Latest FPGA core files for all platforms ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
==== &amp;lt;big&amp;gt;F256Jr2&amp;lt;/big&amp;gt; ====&lt;br /&gt;
!&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
==== &amp;lt;big&amp;gt;F256K2&amp;lt;/big&amp;gt; ====&lt;br /&gt;
|-&lt;br /&gt;
!Core&lt;br /&gt;
!Link&lt;br /&gt;
!Notes&lt;br /&gt;
!&lt;br /&gt;
!Core&lt;br /&gt;
!Link&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/Jr2/Classic/2025-01-07/F256Jr2_MMU_Jan8th_2025_OPL3.mcs 08-Jan-2025]&lt;br /&gt;
|OPL3 added&lt;br /&gt;
!&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|Black*: [https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/K2/CNTX1/2025-02-02/CFP95600C.bin 02-Feb-2025]&lt;br /&gt;
Purple*: [https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K2Purple/CNTX1/CFP95600C.bin 05-Feb-2025]&lt;br /&gt;
|fix Onboard Access to a SPI Flash&lt;br /&gt;
LCD Splash Screen&lt;br /&gt;
|-&lt;br /&gt;
|65816 Ext&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/Jr2/Extended/2024-12-21/F256Jr2_Ext16_Dec21st_2024.mcs 21-Dec-2025]&lt;br /&gt;
|Implementation of the 256Bytes&lt;br /&gt;
Copy from Flash to RAM before booting.&lt;br /&gt;
!&lt;br /&gt;
|65816 Ext&lt;br /&gt;
|Black*: [https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/K2/CNTX2/2025-01-07/CFP95616E.bin 07-Jan-2025]&lt;br /&gt;
Purple*: [https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K2Purple/CNTX2/CFP95616E.bin 06-Jan-2025]&lt;br /&gt;
|Updated access to WS6100&lt;br /&gt;
UART for the VS1053B&lt;br /&gt;
|-&lt;br /&gt;
|65816 Ext 2x&lt;br /&gt;
|[https://c256foenix.com/product-category/gen2-core/?v=5435c69ed3bc Buy Here]&lt;br /&gt;
|2x CPU speed&lt;br /&gt;
layer of 16 bit colored text&lt;br /&gt;
&lt;br /&gt;
hardware line drawing&lt;br /&gt;
&lt;br /&gt;
64 more sprites.&lt;br /&gt;
!&lt;br /&gt;
|65816 Ext 2x&lt;br /&gt;
|Black*: [https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K2/CNTX4/F256K2x_Cores_Foenix138_BlackBoard_B3B_July27th_2025.bin 27-Jul-2025]&lt;br /&gt;
Purple*: [https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K2/CNTX4/F256K2x_Cores_Foenix138_B0C_August4th_2025.bin 4-Aug-2025]&lt;br /&gt;
|2x CPU speed&lt;br /&gt;
layer of 16 bit colored text&lt;br /&gt;
&lt;br /&gt;
hardware line drawing&lt;br /&gt;
&lt;br /&gt;
64 more sprites.&lt;br /&gt;
|-&lt;br /&gt;
|6809&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/Jr2/6809/2025-06-15/F256JrJr_FNX6809_June14th_RC0014_0003.mcs 15-Jun-2025]&lt;br /&gt;
|WIFI Speed and Interface (added TX_Empty &amp;amp; RX_Empty Flag)&lt;br /&gt;
!&lt;br /&gt;
|6809&lt;br /&gt;
|Black*: [https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K2/CNTX3/NitrOS9_Load_BlackBoardB3B_WifiFixed_Sept4th.bin 04-Sep-2025]&lt;br /&gt;
Purple*: [https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K2Purple/CNTX3/NitrOS9_Load_PurpleBoardB0C_WifiFixed_Sept4th.bin 04-Sep-2025]&lt;br /&gt;
|Wifi fix&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
==== &amp;lt;big&amp;gt;F256Jr&amp;lt;/big&amp;gt; ====&lt;br /&gt;
!&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
==== &amp;lt;big&amp;gt;F256K&amp;lt;/big&amp;gt; ====&lt;br /&gt;
|-&lt;br /&gt;
!Core&lt;br /&gt;
!Link&lt;br /&gt;
!Notes&lt;br /&gt;
!&lt;br /&gt;
!Core&lt;br /&gt;
!Link&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/Jr/Classic/F256M_Wbh_Jan26th_2025_RC20_0100.jic 26-Jan-2025]&lt;br /&gt;
|fixes Overlay FONT on top of graphic &lt;br /&gt;
with Background Color Enabled&lt;br /&gt;
!&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/K/F256Kc_WBh_Jan26th_2025_RC16_0001.jic 26-Jan-2025]&lt;br /&gt;
|fixes Overlay FONT on top of graphic &lt;br /&gt;
with Background Color Enabled&lt;br /&gt;
|-&lt;br /&gt;
|65816 Ext 2x&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/Jr/Extended/F256M_Wbh_Jun24th_2025_RC0100_0002.jic 24-Jun-2025]&lt;br /&gt;
|Fixed bugs with register 0x0000 and 0x0001&lt;br /&gt;
!&lt;br /&gt;
|65816 Ext 2x&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K/F256Kc_WBh_Jun23th_RC0100_0003_DualSpeed_CPU.jic 23-Jun-2025]&lt;br /&gt;
|Fixed bugs with register 0x0000 and 0x0001&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Previous FPGA core files for all platforms ===&lt;br /&gt;
Use these for testing out older softwares and snooping around for persistant issues.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
==== &amp;lt;big&amp;gt;Previous F256Jr2 Cores&amp;lt;/big&amp;gt; ====&lt;br /&gt;
|-&lt;br /&gt;
!Core&lt;br /&gt;
!Link&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|6809&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/Jr2/6809/2025-06-13/F256Jr2_FNX6809_June13th_RC0017_0002.mcs 13-Jun-2025]&lt;br /&gt;
|Move the FG &amp;amp; BG Text LUT to: &lt;br /&gt;
&lt;br /&gt;
$18_3800        $18_383F            TEXT_LUT_FG&lt;br /&gt;
&lt;br /&gt;
$18_3840        $18_387F            TEXT_LUT_BG&lt;br /&gt;
|-&lt;br /&gt;
|6809&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/Jr2/6809/2025-06-11/F256Jr2_FNX6809_June11th_RC0017_0000.mcs 11-Jun-2025]&lt;br /&gt;
|big Wishlist&lt;br /&gt;
full access to write back the onboard flash&lt;br /&gt;
|-&lt;br /&gt;
|6809&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/Jr2/6809/2025-01-17/F256Jr2_FNX6809_Jan17th_RC0014_0002.mcs 17-Jan-2025]&lt;br /&gt;
|Fix for the manual Reset&lt;br /&gt;
Fix for the readback of Multiplication Values&lt;br /&gt;
&lt;br /&gt;
Endianess&lt;br /&gt;
&lt;br /&gt;
Changes to: Line/Pixel Position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
==== &amp;lt;big&amp;gt;Previous&amp;lt;/big&amp;gt; &amp;lt;big&amp;gt;F256K2&amp;lt;/big&amp;gt; &amp;lt;big&amp;gt;Cores&amp;lt;/big&amp;gt; ====&lt;br /&gt;
|-&lt;br /&gt;
!Core&lt;br /&gt;
!Link&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|Black*: [https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/K2/CNTX1/2025-01-08/CFP95600C.bin 08-Jan-2025]&lt;br /&gt;
Purple*: n/a &lt;br /&gt;
|OPL3 implemented&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|Black*: [https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/K2/CNTX1/2025-01-07/CFP95600C.bin 07-Jan-2025]&lt;br /&gt;
Purple*: n/a&lt;br /&gt;
|Instantiation of the UART for the VS1053B @ $DDB0&lt;br /&gt;
|-&lt;br /&gt;
|6809&lt;br /&gt;
|Black*: [https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K2/CNTX3/K2_NitrOS9_Load_BlackBoard_Aug26th.bin 26-Aug-2025]&lt;br /&gt;
Purple*: [https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K2Purple/CNTX3/FNX6809_First_Release_Aug24th_PurpleBoard.bin 24-Aug-2025]&lt;br /&gt;
|This is the preliminary version and only works with a PS/2 keyboard plugged in.&lt;br /&gt;
If destined for slot 3, rename the file and put in CNTX3/f256k2t9.bin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
==== &amp;lt;big&amp;gt;Previous F256Jr Cores&amp;lt;/big&amp;gt; ====&lt;br /&gt;
|-&lt;br /&gt;
!Core&lt;br /&gt;
!Link&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/Jr/Classic/F256M_Wbh_Dec23rd_2023_RC18_0100.jic 23-Dec-2023]&lt;br /&gt;
|Tiles fix; shifted by one towards the left. &lt;br /&gt;
(0100 = Serial RAM/Flash Select)&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/Jr/Classic/F256M_Wbh_Nov18th_2023_RC17_0100.jic 18-Nov-2023]&lt;br /&gt;
|In light of decision to dump the big ticket items and the accessories from the store...&lt;br /&gt;
&lt;br /&gt;
* Removed the very SPI core introduced yesterday to drive the FNXNET51 module.&lt;br /&gt;
* Removed the DP memory for the MMU and replace it back with simple Registers, which means that when you reset the system, the MMU, Page0 will be reset back to the way it was. However, the caveat is that if you change between RAM to FLASH MMU default value, you need to do a reset, either a debug reset or General Reset because the MMU is now only 32bytes in Size, so, 4 pages of 8 values.&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/Jr/Classic/F256M_WBh_Nov17th_2023_RC16_0111.jic 17-Nov-2023]&lt;br /&gt;
|&lt;br /&gt;
* No Write Allowed when Debug Port writes in the MMU Memory Zone&lt;br /&gt;
* Incorporation of a new SPI Controller to interface with the FNXNET51 module using the NES/SNES MiniDin9 Connector&lt;br /&gt;
* ReSync of the Debug Generated RDY to stop the CPU. (untested)&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/tree/main/fpga/Jr/Classic various older]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|65816 Ext 2x&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/Jr/Extended/F256M_Wbh_Jun17th_2025_RC0100_0001.jic 16-Jun-2025]&lt;br /&gt;
|CPU runs at 2x speed at 12 MHz&lt;br /&gt;
MUST use a 65816 cpu chip, &lt;br /&gt;
&lt;br /&gt;
will not work with the 6502&lt;br /&gt;
|-&lt;br /&gt;
|6809&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
==== &amp;lt;big&amp;gt;Previous&amp;lt;/big&amp;gt; &amp;lt;big&amp;gt;F256K&amp;lt;/big&amp;gt; &amp;lt;big&amp;gt;Cores&amp;lt;/big&amp;gt; ====&lt;br /&gt;
|-&lt;br /&gt;
!Core&lt;br /&gt;
!Link&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/K/2024-12-23/F256K_WBh_Dec23rd_RevB0x_RC14_0000.jic 23-Dec-2023]&lt;br /&gt;
  &lt;br /&gt;
|Tiles fix; shifted by one towards the left. &lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/K/F256K_WBh_Dec9th_RevB0x_RC13_0000.jic 09-Dec-2023]&lt;br /&gt;
|&lt;br /&gt;
* Fixes a problem with Interrupt from timer0 that was working on the Jr.&lt;br /&gt;
* Resolves a discrepancy between the F256Jr interrupt block and the F256K.&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/blob/main/fpga/K/F256K_WBh_Nov19th_RevB0x_RC12_0011.jic 19-Nov-2023]&lt;br /&gt;
|Corrects the issue with no-response from command $20 &amp;amp; $21 (not being processed in the early parser). The Jr doesn&#039;t have the issue.&lt;br /&gt;
|-&lt;br /&gt;
|6502 MMU&lt;br /&gt;
|various older&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|65816 Ext 2x&lt;br /&gt;
|[https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/fpga/K/F256Kc_WBh_Jun18th_2025_RC0100_0000_DualSpeed_CPU.jic 18-Jun-2025]&lt;br /&gt;
|CPU runs at 2x speed at 12 MHz&lt;br /&gt;
MUST use a 65816 cpu chip, &lt;br /&gt;
&lt;br /&gt;
will not work with the 6502&lt;br /&gt;
|-&lt;br /&gt;
|6809&lt;br /&gt;
|N/A yet&lt;br /&gt;
|N/A yet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---old version will be kept at the bottom for a while in case errors are found above---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== FPGA Upgrade Guide ==&lt;br /&gt;
&lt;br /&gt;
==== How to Upgrade the F256K FPGA (and F256Jr) ====&lt;br /&gt;
Note that the below Video Guide applies to both the F256K &amp;amp; F256Jr, despite it just being titled F256K.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;U7bq7t_qjxg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will need to download Quartus Prime Lite 18.1 Edition, since you are going to target a EP4CE15 FPGA (Cyclone 4).&lt;br /&gt;
&lt;br /&gt;
Do not update to the latest version of Quartus Prime Lite, as the latest version doesn’t support that family of FPGA anymore and the software is very big.&lt;br /&gt;
&lt;br /&gt;
Also, one might want to download only the &amp;quot;Intel® Quartus® Prime Programmer and Tools&amp;quot; as opposed to download the whole software by clicking on &amp;quot;Additional Software&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[https://www.intel.com/content/www/us/en/software-kit/665990/intel-quartus-prime-lite-edition-design-software-version-18-1-for-windows.html Intel Quartus Prime Lite Edition 18.1 for  Windows]&lt;br /&gt;
&lt;br /&gt;
[https://www.intel.com/content/www/us/en/software-kit/665988/intel-quartus-prime-lite-edition-design-software-version-18-1-for-linux.html Intel Quartus Prime Lite Edition 18.1 for Linux]&lt;br /&gt;
&lt;br /&gt;
==== How to Upgrade the FPGA for the F256K2 ====&lt;br /&gt;
It is possible that there will be more graceful methods in the future, but for now, the easiest is to pop off the uSD card found on the left side of the board marked &amp;quot;uSD Card / FPGA Load&amp;quot; and to replace the .bin files inside the directory of the root of that uSD card, using a modern computer.&lt;br /&gt;
&lt;br /&gt;
This will of course imply that you open up your case. [[Optional Upgrades#Opening the F256K case|There is a guide]] on how to do so for the original F256K enclosure. Perhaps the F256K2 enclosure will be similar. &lt;br /&gt;
&lt;br /&gt;
For those unfamiliar with the process of removing the uSD card from these slide-operation holders here is the process:&lt;br /&gt;
&lt;br /&gt;
1) very gently press down on the middle metal locking slider that goes across on top of the uSD card and slide it towards the left.&lt;br /&gt;
&lt;br /&gt;
2) the uSD card and its locking slider will now open up by rotating towards the left with a hinge on the left side&lt;br /&gt;
&lt;br /&gt;
Inside the root of this uSD card, there are four folders marked as CNTX# where # is a number from 1 to 4. Simply replace the .bin file therein to update any one given core. You may completely ignore .prm files since they do not affect the F256K2.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Folder&lt;br /&gt;
!Hard coded file name&lt;br /&gt;
!Typical* usage&lt;br /&gt;
!CPU in the FPGA&lt;br /&gt;
|-&lt;br /&gt;
|CNTX1&lt;br /&gt;
|CFP95600C.bin&lt;br /&gt;
|F256 Classic mode with a memory management unit (MMU), where the CPU sees 64k at once&lt;br /&gt;
|65816 acting as 6502&lt;br /&gt;
|-&lt;br /&gt;
|CNTX2&lt;br /&gt;
|CFP95616E.bin&lt;br /&gt;
|F256 Extended mode with a flat memory map all accessible at once&lt;br /&gt;
|65816&lt;br /&gt;
|-&lt;br /&gt;
|CNTX3&lt;br /&gt;
|f256k2t9.bin&lt;br /&gt;
|F256 with the 6809 core (planned) or 68000 core (planned)&lt;br /&gt;
|6809&lt;br /&gt;
|-&lt;br /&gt;
|CNTX4&lt;br /&gt;
|foenix138.bin&lt;br /&gt;
|F256 with 2x CPU speed Extended mode with a flat memory map all accessible at once&lt;br /&gt;
|65816&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== Note* on typical usage ======&lt;br /&gt;
As long as you keep the proper hard coded names tied to their folder names, you can slide any core to any slot. For example, if you want the 2x core to be in the CTNX2 folder, just rename it appropriately to CFP95616E.bin as you put it into CTNX2/.&lt;br /&gt;
&lt;br /&gt;
====== F256K2 core prep steps: ======&lt;br /&gt;
&lt;br /&gt;
# Take care of placing the bin file in the FPGA load uSD card&lt;br /&gt;
# Set the core selecting DIP switches at the back of the unit. Down (towards bottom of the unit) = 0, Up (towards the upper side of the unit) = 1. See below for all possibilities.&lt;br /&gt;
# Power up the unit. If this is the first time you&#039;re using that core and you&#039;ve never done step 4 for it, it&#039;s normal to not have a properly booted initial software (ie superbasic or otherwise)&lt;br /&gt;
# Write the firmware to the content of the flash. Each of the 4 cores have their own 512kb of reserved flash space that are selected at the same time as the core itself from the uSD FPGA load card. Once they are written to, they are set for future usages as you switch between cores and won&#039;t require further flash writes, unless you&#039;re doing updates.&lt;br /&gt;
&lt;br /&gt;
====== Core selecting DIP switches in the back ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Core 1&lt;br /&gt;
!Core 2&lt;br /&gt;
!Core 3&lt;br /&gt;
!Core 4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:Core1.png|thumb]]&lt;br /&gt;
|&lt;br /&gt;
[[File:Core3.png|thumb]]&lt;br /&gt;
|&lt;br /&gt;
[[File:Core2.png|thumb]]&lt;br /&gt;
|&lt;br /&gt;
[[File:Core4.png|thumb]]&lt;br /&gt;
|-&lt;br /&gt;
|0 0&lt;br /&gt;
|1 0&lt;br /&gt;
|0 1&lt;br /&gt;
|1 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== How to Upgrade the FPGA for the F256Jr. the 2nd ====&lt;br /&gt;
Go look at this [[FPGA Upgrade Guide (F256JrJr)|guide here in the wiki]].&lt;br /&gt;
&lt;br /&gt;
=== Suggested USB Blaster (K and Jr. only) ===&lt;br /&gt;
&lt;br /&gt;
Earth People Technology&lt;br /&gt;
[https://www.amazon.ca/JTAG-Blaster-Intel-Altera-Programmer/dp/B07BZMSZ3G/ref=sr_1_3?crid=WWV8P0OHVCE3&amp;amp;keywords=altera+usb+blaster&amp;amp;qid=1688067039&amp;amp;sprefix=altera+usb+blaster%2Caps%2C113&amp;amp;sr=8-3]&lt;br /&gt;
[https://earthpeopletechnology.com/?wpsc-product=ept-2232h-sp-s1]&lt;br /&gt;
&lt;br /&gt;
Terasic USB Blaster (low cost version)&lt;br /&gt;
[https://www.digikey.ca/en/products/detail/terasic-inc/P0302/2003484]&lt;br /&gt;
[https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=&amp;amp;No=46#contents]&lt;br /&gt;
&lt;br /&gt;
Chinese Knockoff (please avoid if possible)&lt;br /&gt;
&lt;br /&gt;
=== Open Source blaster software (K and Jr. only) ===&lt;br /&gt;
&lt;br /&gt;
For those who are struggling to program the FPGA with Linux or Apple, Stef found this great tool:&lt;br /&gt;
&lt;br /&gt;
https://github.com/trabucayre/openFPGALoader/releases&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_6502&amp;diff=38382</id>
		<title>Software for 6502</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_6502&amp;diff=38382"/>
		<updated>2026-01-12T18:33:39Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Sample Code */ MikeC github&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note that when an hex address is given, it&#039;s meant to instruct as to which address to bload or to send (ie foenixmgr python script) the program (ie a .bin file) to before running it. For extra help on how to run .bin files and almost every possible scheme that has to be used to run program, you can consult this video that&#039;s also part of [[Getting Started]], this one: https://www.youtube.com/watch?v=0ShFv89KGDs&lt;br /&gt;
&lt;br /&gt;
Many download links are posts in the main [https://discord.gg/9vjUEGgcUS Foenix Retro Systems discord server] which will require you to join in order to get to them.&lt;br /&gt;
&lt;br /&gt;
A [[Getting Started#Demos Archive|Demo Archive]] was put together in September 2023 to get ready to show to youtubers, some of these are linked once more, in this page.   &lt;br /&gt;
&lt;br /&gt;
There&#039;s also the Foenix Marketplace website maintained by EMWhite with its own collection of articles and software http://apps.emwhite.org/foenixmarketplace/.  &lt;br /&gt;
&lt;br /&gt;
===== Curated SD card collection of games, demos, utilities =====&lt;br /&gt;
Here is a download link to a zip file meant to be extracted into the root of an SD card: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
&lt;br /&gt;
Best to wipe out your SD card and start anew with the contents of this extracted to root. Micah&#039;s file manager doesn&#039;t like long lists of files so it really is best to not overdo it. I tried to minimize the files in root, but I couldn&#039;t for everything.&lt;br /&gt;
&lt;br /&gt;
Open the readme.txt file with moreorless to see some instructions about the collection. Best to run /- fm first, then open the readme.txt from it&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|F256 f/term&lt;br /&gt;
|Terminal emulator for F256K and Jr with classic (flat) memory load&lt;br /&gt;
|Micah&lt;br /&gt;
| - fterm.pgZ or use f/manager&lt;br /&gt;
|https://github.com/WartyMN/F256-terminal/blob/main/release/fterm.pgZ&lt;br /&gt;
|-&lt;br /&gt;
|FoenixTarot&lt;br /&gt;
|Tarot card readings in SuperBasic&lt;br /&gt;
|Mike&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/mcassera/FoenixTarot/tree/main&lt;br /&gt;
|-&lt;br /&gt;
|Forthf256&lt;br /&gt;
|Forth implementation&lt;br /&gt;
|Vasyl&lt;br /&gt;
|pgz in its forth/ folder&lt;br /&gt;
|https://github.com/VasylTsv/ForthX16&lt;br /&gt;
|-&lt;br /&gt;
|WildBits Graphic Toolkit&lt;br /&gt;
|(fmr. F256-GraphicToolkit) Sprite editor, Tilemap editor, Font editor + misc tools&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/econtrerasd/F256-GraphicToolkit/releases&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Demos ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|badapple&lt;br /&gt;
|A 80x60 textmode port of Bad Apple, uses the VS1053b for quality mp3 audio. Needs a Jr2 or K2!&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz*&lt;br /&gt;
|*unzip badapple.zip into the root of your SD card. If done right, the 3 files within will be in the demos/ folder. The program expects its data file there when it runs. https://github.com/Mu0n/F256MiscGoodies/blob/main/apps/badapple.zip&lt;br /&gt;
|-&lt;br /&gt;
|balls&lt;br /&gt;
|Draw a good quantity of multiplexed sprites, fast. Balls bouncing around&lt;br /&gt;
|celton&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/FoenixRetro/demos/blob/main/MultiplexedSprites.md&lt;br /&gt;
|-&lt;br /&gt;
|F256Archon&lt;br /&gt;
|Splash screen intro, plays MIDI using the SAM2695, requires a K2 or Jr2&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256Archon/releases&lt;br /&gt;
|-&lt;br /&gt;
|f256_life&lt;br /&gt;
|An implementation of Conway&#039;s game of life&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_life&lt;br /&gt;
|-&lt;br /&gt;
|F256 Mandelbrot&lt;br /&gt;
|Draws Mandelbrot set fast (5 mins) using coprocessor math. Allows to zoom into the set.&lt;br /&gt;
|mgr42&lt;br /&gt;
|uses basic loader&lt;br /&gt;
|https://github.com/rmsk2/F256_Mandelbrot&lt;br /&gt;
|-&lt;br /&gt;
|F256ShowCase&lt;br /&gt;
|Shows sliding tiling graphics, moves with joystick&lt;br /&gt;
|eriktier&lt;br /&gt;
|$0000&lt;br /&gt;
|https://github.com/pig-games/F256Showcase&lt;br /&gt;
|-&lt;br /&gt;
|fnxmas23 &lt;br /&gt;
|PSG mod music, scrolling text, sound effects, must see demo!&lt;br /&gt;
|dwsJason and digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/apps/xmas24_k2.pgz revised version that can run on wave 2 Jr2 and K2 as well&lt;br /&gt;
|-&lt;br /&gt;
|foenixmas23&lt;br /&gt;
|Xmas 2023 demo with SID music from the classic 1983 C64 xmas demo&lt;br /&gt;
|EMWhite&lt;br /&gt;
|uses basic loader&lt;br /&gt;
|http://apps.emwhite.org/shared-files/815/?foenixmas23.zip&lt;br /&gt;
|-&lt;br /&gt;
|livingworlds&lt;br /&gt;
|Living Worlds, a port of a color cycling by Mark Ferrari, ported here on the F256 by haydenkale&lt;br /&gt;
|haydenkale&lt;br /&gt;
|$0000&lt;br /&gt;
|https://github.com/clandrew/livingworlds/tree/e4532e0d530b76ccb90368fdf5ad10bfa2deeb12&lt;br /&gt;
|-&lt;br /&gt;
|mandel&lt;br /&gt;
|Will draw a mandelbrot set in 3 hours, more useful as a stability test than a useful fractal program&lt;br /&gt;
|Mu0n&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles?tab=readme-ov-file#fractal&lt;br /&gt;
|-&lt;br /&gt;
|mariobros&lt;br /&gt;
|Tilemap and platformer test based on Mario Bros. (1983)&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/mariobros&lt;br /&gt;
|-&lt;br /&gt;
|pendulum&lt;br /&gt;
|Sprite and MIDI demo&lt;br /&gt;
|MikeC&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/pendulum&lt;br /&gt;
|-&lt;br /&gt;
|wormhole&lt;br /&gt;
|Shows a fast wireframe animation of a wormhole&lt;br /&gt;
|haydenkale&lt;br /&gt;
|pgz or bin at $0000&lt;br /&gt;
|https://github.com/clandrew/wormhole?tab=readme-ov-file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|bbombers&lt;br /&gt;
|Boulder Bombers (Alpha-2)  Clone of Canyon Bombers&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/BoulderBombers&amp;lt;nowiki/&amp;gt;https://github.com/scttgs0/BoulderBombers/releases/tag/alpha_2&lt;br /&gt;
|-&lt;br /&gt;
|Bombsweeper&lt;br /&gt;
|Bomb sweeper port&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/855689509520932885/1196352934083035156&lt;br /&gt;
|-&lt;br /&gt;
|Cosmic&lt;br /&gt;
|Shoot &#039;em up&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discordapp.com/channels/691915291721990194/1054250238308790342/1175982979537969214&lt;br /&gt;
|-&lt;br /&gt;
|F256-Trek&lt;br /&gt;
|Updated Trek, with modern F256 Graphics&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|[https://github.com/econtrerasd/Trek-F256/releases/tag/v1.0 https://github.com/econtrerasd/Trek-F256/releases]&lt;br /&gt;
|-&lt;br /&gt;
|F256 two to the power of eleven&lt;br /&gt;
|Port of the puzzle game of 2048&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/F256_2048&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|fillerup&lt;br /&gt;
|Fill &#039;er Up (WIP)&lt;br /&gt;
Qix-like game&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/Fill-er-up&lt;br /&gt;
|-&lt;br /&gt;
|FusionDrive&lt;br /&gt;
|An outrun type game that also plays a MIDI soundtrack&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|wip v0.2, can use a NES pad #1 to move around, or left/right arrow keys currently https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
|-&lt;br /&gt;
|jewelkeeper&lt;br /&gt;
|Sokoban port&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/apps/jewelkeeper.pgz&amp;lt;nowiki/&amp;gt;You can now specify a level file when loading the game &amp;lt;code&amp;gt;/- jewelkeeper.pgz &amp;lt;levels.txt&amp;gt;&amp;lt;/code&amp;gt;.  Find more levels at https://www.sourcecode.se/sokoban/levels.php.  Keep in mind the maximum level dimension is 20x15, anything larger will be ignored&lt;br /&gt;
|-&lt;br /&gt;
|Jr Wördl&lt;br /&gt;
|port of Wordle&lt;br /&gt;
|AgeAgeEye&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/ageageeye/Superbasic-F256Jr-examples&lt;br /&gt;
|-&lt;br /&gt;
|kartdemo&lt;br /&gt;
|Kart racing game&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225217654487253094/1228246780840513556&lt;br /&gt;
|-&lt;br /&gt;
|Lair of the Lich King&lt;br /&gt;
|Rogue like dungeon crawler. Demo has 3 levels; full has 25+&lt;br /&gt;
|Micah&lt;br /&gt;
| - lkdemo/lk.pgz&lt;br /&gt;
|[https://discord.com/channels/691915291721990194/1230670413361844244/1317256215566487593 1.0 Beta 19 Demo]&lt;br /&gt;
|-&lt;br /&gt;
|livewire&lt;br /&gt;
|Livewire (WIP)&lt;br /&gt;
Tempest-like game&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/Livewire&lt;br /&gt;
|-&lt;br /&gt;
|Maze-Munch&lt;br /&gt;
|Pac-Man clone&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/Maze-Munch&lt;br /&gt;
|-&lt;br /&gt;
|pdefense&lt;br /&gt;
|Planetary Defense (WIP)&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
mouse&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/PlanetaryDefense&lt;br /&gt;
|-&lt;br /&gt;
|Shanghai/Mahjongg&lt;br /&gt;
|A clone of Shanghai. Also known as Mahjongg&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz or KUP&lt;br /&gt;
mouse needed&lt;br /&gt;
|https://github.com/rmsk2/f256_mahjong&lt;br /&gt;
|-&lt;br /&gt;
|Ski-Jr&lt;br /&gt;
|Ski game downhill&lt;br /&gt;
|digarok&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/digarok/superbasic-traveler/blob/main/ski-jr.bas&lt;br /&gt;
|-&lt;br /&gt;
|Track &amp;amp; Field&lt;br /&gt;
|Olympic Game by Konami (WIP)&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick or keyboard&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tetris&lt;br /&gt;
|Good old 80&#039;s game&lt;br /&gt;
|Daniel Tremblay (Grenouye)&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick or keyboard&lt;br /&gt;
|https://github.com/dtremblay/c256-tetris/tree/f256k&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #01 - April 6th/7th 2024 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|15puzzle&lt;br /&gt;
|Number sort puzzle&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_15puzzle/releases&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Flight Simulator&lt;br /&gt;
|flying simulator&lt;br /&gt;
|sduensin&lt;br /&gt;
|pgz&lt;br /&gt;
|https://cdn.discordapp.com/attachments/1225481966200029286/1227764847819620454/shotel.pgz&lt;br /&gt;
|-&lt;br /&gt;
|frisbee&lt;br /&gt;
|Frisbee throw past sport game&lt;br /&gt;
|dwsJason&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dwsJason/f256/blob/develop/merlin32/frisbee/frisbee.pgz&lt;br /&gt;
|-&lt;br /&gt;
|Impasse&lt;br /&gt;
|Shoot &#039;em up&lt;br /&gt;
|digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225481966200029286/1227075699895046235&lt;br /&gt;
|-&lt;br /&gt;
|soccur&lt;br /&gt;
|mutliplayer game of soccer&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|executable:https://discord.com/channels/691915291721990194/1225481966200029286/1226808228948611184&lt;br /&gt;
source code:&lt;br /&gt;
https://discord.com/channels/691915291721990194/1225481966200029286/1226812472069980232&lt;br /&gt;
|-&lt;br /&gt;
|Trek&lt;br /&gt;
|port of classic Star Trek game&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225481966200029286/1226727849944289341&lt;br /&gt;
|-&lt;br /&gt;
|Typing Star&lt;br /&gt;
|typing reaction game&lt;br /&gt;
|haydenkale&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/clandrew/typestar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #02 - October 25th-November 1st 2024 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Bach&#039;s MIDI Hero&lt;br /&gt;
|Free MIDI/PSG play + note play tutorial&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
the MIDI feature requires a F256K2 or F256Jr2; a legacy PSG option also allows F256K and F256Jr to still hear it. Optionally uses a MIDI in controller plugged in.&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles/releases/download/v1.2/BachHero.pgz&lt;br /&gt;
|-&lt;br /&gt;
|f256_snake&lt;br /&gt;
|&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz. Use cursor keys, Atari joystick or SNES pad to play&lt;br /&gt;
|https://github.com/rmsk2/f256_snake&lt;br /&gt;
|-&lt;br /&gt;
|fnxsnake&lt;br /&gt;
|&lt;br /&gt;
|silk-neon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/ksiondag/fnxsnake&lt;br /&gt;
|-&lt;br /&gt;
|The Hallow&lt;br /&gt;
|&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/FoenixGameJamOct2024&lt;br /&gt;
|-&lt;br /&gt;
|Halloween Birthday&lt;br /&gt;
|&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/GameJam2024_F256K&lt;br /&gt;
|-&lt;br /&gt;
|Haunted Mansion&lt;br /&gt;
|&lt;br /&gt;
|digarok&lt;br /&gt;
|superbasic&lt;br /&gt;
|https://github.com/digarok/fnxgamejam-haunted-mansion&lt;br /&gt;
|-&lt;br /&gt;
|Kooyan&lt;br /&gt;
|&lt;br /&gt;
|Grenouye&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dtremblay/kooyan.git&lt;br /&gt;
|-&lt;br /&gt;
|Spooky Run&lt;br /&gt;
|&lt;br /&gt;
|dwsJason&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dwsJason/spooky&lt;br /&gt;
|-&lt;br /&gt;
|Trick or Treat&lt;br /&gt;
|&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/TrickOrTreat&lt;br /&gt;
|-&lt;br /&gt;
|Ultima III - Exodus&lt;br /&gt;
|port&lt;br /&gt;
|Minstrel Dragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/minstreldragon/F256_Ultima_3&lt;br /&gt;
|-&lt;br /&gt;
|Warlock&lt;br /&gt;
|remake of 68000 game&lt;br /&gt;
|xDraconian&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick&lt;br /&gt;
DOWN=change_level&lt;br /&gt;
UP=jump&lt;br /&gt;
UP-LEFT=leap&lt;br /&gt;
UP-RIGHT=leap&lt;br /&gt;
|https://github.com/scttgs0/Foenix_GameJam_Oct2024&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Game Jam #03 - April 18th-April 27th 2025 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Arcade Shanghai v1.2&lt;br /&gt;
|Shanghai clone&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic, keep the .bas program in root, the rest in the provided ashanghai/ folder&lt;br /&gt;
|https://github.com/econtrerasd/ashanghai/releases&lt;br /&gt;
|-&lt;br /&gt;
|Bawk Bawk Cluck Cluck&lt;br /&gt;
|Chicken themed platformer&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/FoenixGameJamApr2025&lt;br /&gt;
|-&lt;br /&gt;
|BitLadder&lt;br /&gt;
|Shoot &#039;Em Up&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz. For full sound compatibility, a Jr2 or K2 is needed. &lt;br /&gt;
Uses 4 sound chips! (PSG, SID, OPL3, MIDI)&lt;br /&gt;
|https://mu0n.itch.io/bitladder&lt;br /&gt;
|-&lt;br /&gt;
|F256_Commando&lt;br /&gt;
|Commando port&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/F256_Commando&lt;br /&gt;
|-&lt;br /&gt;
|F256_LodeRunner&lt;br /&gt;
|Lode Runner port&lt;br /&gt;
|Minstrel Dragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/minstreldragon/F256_Loderunner/releases&lt;br /&gt;
|-&lt;br /&gt;
|Mahjong&lt;br /&gt;
|Shangai clone&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_mahjong/releases&lt;br /&gt;
|-&lt;br /&gt;
|Quarth&lt;br /&gt;
|Block placement arcade game&lt;br /&gt;
|Grenouye&lt;br /&gt;
|pgz&lt;br /&gt;
|https://grenouye.itch.io/f256-quarth&lt;br /&gt;
|-&lt;br /&gt;
|Skee(ster)-Ball&lt;br /&gt;
|&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/skeeball256/tree/main&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #04 - November-December 2025 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Fallitaire&lt;br /&gt;
|A cozy fall-themed twist on Pyramid Solitaire, built for the Foenix F256K2 Game Jam!&lt;br /&gt;
|Programmer Vs World&lt;br /&gt;
|bas&lt;br /&gt;
|https://programmervsworld.itch.io/fallitaire&lt;br /&gt;
|-&lt;br /&gt;
|H.E.R.O.&lt;br /&gt;
|Port of the classic game H.E.R.O.&lt;br /&gt;
|Cibee&lt;br /&gt;
|pgz&lt;br /&gt;
|https://c1bee.itch.io/hero&lt;br /&gt;
|-&lt;br /&gt;
|Leaderboard&lt;br /&gt;
|Golf game&lt;br /&gt;
|xDraconian&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1424187774642290799/1456104940186501132&lt;br /&gt;
|-&lt;br /&gt;
|Pitfall&lt;br /&gt;
|Port of the classic Pitfall game from Activision&lt;br /&gt;
|MinstrelDragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://minstrel.itch.io/pitfall-foenix-f256x&lt;br /&gt;
|-&lt;br /&gt;
|Return of the Falcon&lt;br /&gt;
|&lt;br /&gt;
|Callisto&lt;br /&gt;
|TBD&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Swicheroo&lt;br /&gt;
|An Alternate Puzzle Game&lt;br /&gt;
|jbaker8935&lt;br /&gt;
|pgz&lt;br /&gt;
|https://jbaker8935.itch.io/switcheroo&lt;br /&gt;
|-&lt;br /&gt;
|Track Day&lt;br /&gt;
|v1.0 top down race game vs computer controlled opponents&lt;br /&gt;
|MikeC&lt;br /&gt;
|pgz&lt;br /&gt;
|https://mcassera.itch.io/track-day-racing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Music ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|cozyMIDI&lt;br /&gt;
|Plays a SMF with the SAM2695 or VS1053b &lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|cozyMIDI v2.5 can open and play type 0 and type 1 standard MIDI files (SMF)&lt;br /&gt;
needs a Jr2 or K2&lt;br /&gt;
with a 2x core at https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
run operation 1: just as itself, it will force you to pick a midi file in the &#039;midi/&#039; folder /- cozymidi&lt;br /&gt;
&lt;br /&gt;
run operation 2: in f/manager, if you put this as &amp;lt;code&amp;gt;midiplayer.pgz&amp;lt;/code&amp;gt;in the &#039;_apps/&#039; folder, f/manager will open midi file with it when you launch .mid files. &lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/cozymidi.pgz&lt;br /&gt;
|-&lt;br /&gt;
|digestMidi&lt;br /&gt;
|converts .mid to .dim&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|.mid files are slow to load, parse and prepare for a playback. This tool comes in to convert them into a .dim format that strips out unnecessary MIDI commands and sets it up for timer0 time delays. Works with type 0 and type 1 standard midi files. This tools does the conversion and lets you hear the result.&lt;br /&gt;
Find the latest version here: https://github.com/Mu0n/F256MiscGoodies/tree/main/apps&lt;br /&gt;
|-&lt;br /&gt;
|EdInHisLib&lt;br /&gt;
|SID+OPL3 simultaneously&lt;br /&gt;
|beethead, ported from xantax&lt;br /&gt;
|pgz&lt;br /&gt;
|F256 port: https://discordapp.com/channels/691915291721990194/1054249926521016392/1184413356598231120&lt;br /&gt;
original: &amp;lt;nowiki&amp;gt;https://csdb.dk/release/?id=170898&amp;lt;/nowiki&amp;gt;. Not 100% accurate but close.&lt;br /&gt;
|-&lt;br /&gt;
|F256amp&lt;br /&gt;
|mp3, ogg, wav, wma file playback&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|(aka audioplayer.pgz) v2.3 Needs a Jr.2 or K2 since it uses the VS1053b chip.&lt;br /&gt;
For a starter collection of .mp3 and other audio files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
run operation 1: just as itself, it will force you to pick an audio file. it expects a &amp;lt;code&amp;gt;media/mp3/&amp;lt;/code&amp;gt; folder, but it can live without it and peek into the root instead. &lt;br /&gt;
&lt;br /&gt;
run operation 2: with an argument, it will auto-play it: /- f256amp yourmp3file.mp3 &lt;br /&gt;
&lt;br /&gt;
run operation 3:  in f/manager, if you put this as &amp;lt;code&amp;gt;audioplayer.pgz&amp;lt;/code&amp;gt; in the &#039;_apps/&#039; folder. This lets f/manager automatically open up .mp3, .wav, .ogg, .wma that you press enter on.&lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/f256amp.pgz&lt;br /&gt;
|-&lt;br /&gt;
|FireJam&lt;br /&gt;
|all chips, music playing with MIDI in&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v1.2 MIDI in and out capable, it will still partially work with a Jr. (PSG, and SID if you have them), a K (PSG, SID, OPL3) and the newest wave 2 Jr2 and K2 (PSG, SID, OPL3, SAM, VS1053b).&lt;br /&gt;
Best to use with a MIDI in controller, but it&#039;ll be controllable with arrows and space to make notes individually, or the F keys to start beats. https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
|-&lt;br /&gt;
|jrtracker&lt;br /&gt;
|Tracker based in basic and uses the PSG&lt;br /&gt;
(considered obsolete, use tracker2)&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://ptb.discord.com/channels/691915291721990194/1008139105386889346/1188292876984143983&lt;br /&gt;
|-&lt;br /&gt;
|modo&lt;br /&gt;
|MOD player using the PSG&lt;br /&gt;
|dwsJason and digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discordapp.com/channels/691915291721990194/855689509520932885/1190723114661859429&lt;br /&gt;
|-&lt;br /&gt;
|Musik&lt;br /&gt;
|Music piece demo using MIDI&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/Musik/blob/main/Musik.PGZ&amp;lt;nowiki/&amp;gt;Musikalisches Würfelspiel&lt;br /&gt;
Requires a Jr2 or K2 since it uses MIDI&lt;br /&gt;
|-&lt;br /&gt;
|opl3snooper&lt;br /&gt;
|playback of VGM files (that use opl2 and opl3) and MIDI in&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v1.1 mainly plays back vgm files, but you can pause it and snoop around the channel instruments and play up to 18 note polyphony with MIDI in. expects a collection in media/vgm/, or it will browse from the root if it can&#039;t find.  &lt;br /&gt;
It can load a .spl (Simple PLaylist) text file, which is one file per line, including their respective paths. &lt;br /&gt;
Requires a Jr2 or K2 with a 2x core to use the extra bank of SRAM.&lt;br /&gt;
For a starter collection of .vgm files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
run operation 1: just as itself, it will force you to pick a midi file in the &#039;media/vgm/&#039; folder &lt;br /&gt;
&lt;br /&gt;
run operation 2: in f/manager (v1.1b9 and up), if you put this as &amp;lt;code&amp;gt;vgmplayer.pgz&amp;lt;/code&amp;gt;in the &#039;_apps/&#039; folder, f/manager will open midi file with it when you launch .vgm files. &lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/opl3snooper.pgz &lt;br /&gt;
|-&lt;br /&gt;
|opl3tweak&lt;br /&gt;
|uses MIDI in, plays 18 channels polyphony in real time to the YMF262 OPL3. Fish for random register values.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v0.1. Can&#039;t save or load instrument definitions yet. Needs a K2 with a MIDI in currently.  https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/opl3tweak.pgz&lt;br /&gt;
Arrows to move around, + and - keys to incr/decr values or type in a hex value directly under the highlighted position.&lt;br /&gt;
|-&lt;br /&gt;
|piano&lt;br /&gt;
|Plays some PSG notes with the keyboard&lt;br /&gt;
|Mu0n&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles?tab=readme-ov-file#pulse-sound-generator-piano&lt;br /&gt;
|-&lt;br /&gt;
|playvgm&lt;br /&gt;
|plays a headless vgm file with OPL3&lt;br /&gt;
|G33kyAndIKnowIt&lt;br /&gt;
|pgx&lt;br /&gt;
|https://github.com/natebarney/playvgm-f256k&lt;br /&gt;
some example music files can be gotten from this post:&lt;br /&gt;
[https://discord.com/channels/691915291721990194/975117322836656138/1220366429640065074 https://discord.com/channels/6][https://discord.com/channels/691915291721990194/975117322836656138/1220366429640065074 91915291721990194/975117322836656138/1220366429640065074]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) open a normal .vgm into a hex editor &amp;lt;nowiki/&amp;gt;and cut out the header bytes from 0x00 to 0x&amp;lt;nowiki/&amp;gt;FF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) run by first using superbasic&#039;s &#039;&#039;&#039;&#039;&#039;bload&#039;&#039;&#039;&#039;&#039; &#039;&#039;&#039;&#039;&#039;&amp;quot;yourmusicfile&amp;quot;, $01000&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
followed by running this program with &#039;&#039;&#039;&#039;&#039;/- playvgm.pgx&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|sidtweak&lt;br /&gt;
|uses MIDI in, plays 6 channels polyphony in real time to the dual SID. Fish for random register values.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v0.1. Can&#039;t save or load instrument definitions yet. Needs a K2 with a MIDI in currently. https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/sidtweak.pgz&lt;br /&gt;
Arrows to move around, + and - keys to incr/decr values or type in a hex value directly under the highlighted position.&lt;br /&gt;
|-&lt;br /&gt;
|rawsidplayer&lt;br /&gt;
|plays raw PSID files from the HVSC collection, converted by zigreSID&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|(formely psidplayer) v0.2 find rawsidplayer.pgz and a starter .rsd file (raw sid dumps). For a starter collection of .rsd files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection &lt;br /&gt;
extract sid.zip into a folder /sid/ in the root of your SD card, that&#039;s where psidplayer.pgz will first look to let you pick a file. failing that, it will fall back to the root folder and let you navigate.&lt;br /&gt;
&lt;br /&gt;
program link:&lt;br /&gt;
&lt;br /&gt;
https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/rawsidplayer.pgz&lt;br /&gt;
|-&lt;br /&gt;
|tracker2 v1.5&lt;br /&gt;
|Like jrtracker.bas, but using both PSGs&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/econtrerasd/Tracker2/releases&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Uti&amp;lt;nowiki/&amp;gt;lities ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Descrip&amp;lt;nowiki/&amp;gt;tion&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|basic2text&lt;br /&gt;
|A simple utility for translating Commodore BASIC (all variants) from its native tokenized file format to a text format that can be opened with SuperBASIC. Does not perform any code translation: all adaptation is up to you. &lt;br /&gt;
|Micah&lt;br /&gt;
|pgZ&lt;br /&gt;
|https://github.com/WartyMN/F256-BasText/releases/latest&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|dcopy&lt;br /&gt;
|A tool to copy files from one drive to another or to/from your PC via RS-232 and a nullmodem cable&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz/flash&lt;br /&gt;
|https://github.com/rmsk2/f256_dcopy&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|f/manager&lt;br /&gt;
|A general file utility, launcher, and memory viewing program. Dual-panel file/memory browsers; copy between disks,  between folders on same disk, and from memory to disk and vice versa; delete, rename, and duplicate files; view files as hex or text (with word-wrap); launch applications and known file types; set the RTC clock; search in RAM and flash. Works with internal SD card and IEC devices such as FNX1591 and Commodore 1541. Can be installed in primary flash position ahead of SuperBASIC or DOS, or at a higher location. Can also be run from disk with &amp;quot;- fm.pgz&amp;quot;.&lt;br /&gt;
|Micah&lt;br /&gt;
|pgZ/flash&lt;br /&gt;
|https://github.com/WartyMN/F256-FileManager/releases&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|f256_reset&lt;br /&gt;
|A small utility that lets you reset the machine through this piece of flash software&lt;br /&gt;
|mgr42&lt;br /&gt;
|flash&lt;br /&gt;
|https://github.com/rmsk2/f256_reset&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|fcart&lt;br /&gt;
|A program that allows to write data to flash expansion cartridges &lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz, on-board and cartridge flash&lt;br /&gt;
|https://github.com/rmsk2/cartflash&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|flashcart&lt;br /&gt;
|Allows to wipe a block of flash or write a program to a flash cart, from this basic program from the F256Jr/K&lt;br /&gt;
|redfool.&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Red-Fool/F256_FlashCart/tree/main&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|flashselect&lt;br /&gt;
|Allows to select a program to start from a flash cartridge via a menu&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz, on-board and cartridge flash&lt;br /&gt;
|https://github.com/rmsk2/flashselect&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|fonts&lt;br /&gt;
|A variety of fonts using the standard F256 character set arrangement. Load with the F256 file manager (f/manager), or your own code.&lt;br /&gt;
|Micah&lt;br /&gt;
|(not a program)&lt;br /&gt;
|[https://github.com/WartyMN/Foenix-Fonts/tree/main https://github.com/WartyMN/Foenix-Fonts]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|midiStuff&lt;br /&gt;
|Test program for a F256K2 or F256Jr2 that sends MIDI data to the internal sam2695 dream chip that produces MIDI based audio. Also test a keyboard controller plugged in the MIDI in port.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles/blob/main/README.md#midistuff&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|moreorless&lt;br /&gt;
|A text editor for the Foenix 256 line of computers&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/moreorless/releases/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pgz2flash&lt;br /&gt;
|A program for your Linux, Windows or MacOS machine to turn any PGZ or SuperBASIC program into a KUP which can be run from cartridge or onboard flash memory&lt;br /&gt;
|mgr42&lt;br /&gt;
|Executable for modern computers&lt;br /&gt;
|https://github.com/rmsk2/pgz2flash&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|sidTester&lt;br /&gt;
|Simple superbasic program that tests out all 3 voices of the SID1 on the Jr (if populated), K, Jr2 and K2. Ported by Mu0n, made by andy on HackJunk.com https://hackjunk.com/2017/11/07/commodore-64-sid-tester/&lt;br /&gt;
|andy&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/blob/main/apps/sidtester.bas&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|testsuite.bas&lt;br /&gt;
|a series of tests for your F256, video modes and sound chips&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|run from the root, &lt;br /&gt;
https://github.com/econtrerasd/testSuite-F256/releases&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|wget&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|&amp;lt;nowiki/&amp;gt;fetches a file from a http address if you have a network connection active. Works with the K and Jr. ESP32 Feather &#039;huzzah&#039; board. Not meant to be used with the K2 and Jr2 Wiznet chip.&lt;br /&gt;
|gadget&lt;br /&gt;
|&amp;lt;nowiki/&amp;gt;pgz/flash&lt;br /&gt;
|https://github.com/ghackwrench/F256_wget&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sample Code ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Assembly examples&lt;br /&gt;
|Sample programs for several features of the Foenix F256K and Jr.&lt;br /&gt;
|mgr42&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/rmsk2/Hello_Foenix256_Jr/blob/main/testprogs.md&lt;br /&gt;
|-&lt;br /&gt;
|cc65 example&lt;br /&gt;
|c example code&lt;br /&gt;
|gadget&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/ghackwrench/F256_Jr_Kernel_DOS&lt;br /&gt;
|-&lt;br /&gt;
|digarok basic stuff&lt;br /&gt;
|Lots of basic examples&lt;br /&gt;
|digarok&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/digarok/superbasic-traveler/tree/main&lt;br /&gt;
|-&lt;br /&gt;
|MikeC repos&lt;br /&gt;
|Various projects in assembly&lt;br /&gt;
|MikeC&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/mcassera&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K asm doodles&lt;br /&gt;
|Some asm examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleASMdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K basic doodles&lt;br /&gt;
|Some basic examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K C doodles&lt;br /&gt;
|Some C examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Raúl SQ basic repo&lt;br /&gt;
|F256 SuperBASIC Trigonometry&lt;br /&gt;
|Raúl SQ&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/raul-sq/FoenixF256K2&lt;br /&gt;
|-&lt;br /&gt;
|tcp example&lt;br /&gt;
|connects to a server and gets typed in text echoed back to you&lt;br /&gt;
|gadget&lt;br /&gt;
|$2000&lt;br /&gt;
|https://github.com/ghackwrench/F256_example_tcp&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_6502&amp;diff=38381</id>
		<title>Software for 6502</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_6502&amp;diff=38381"/>
		<updated>2026-01-12T18:32:48Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Demos */ pendulum demo from MikeC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note that when an hex address is given, it&#039;s meant to instruct as to which address to bload or to send (ie foenixmgr python script) the program (ie a .bin file) to before running it. For extra help on how to run .bin files and almost every possible scheme that has to be used to run program, you can consult this video that&#039;s also part of [[Getting Started]], this one: https://www.youtube.com/watch?v=0ShFv89KGDs&lt;br /&gt;
&lt;br /&gt;
Many download links are posts in the main [https://discord.gg/9vjUEGgcUS Foenix Retro Systems discord server] which will require you to join in order to get to them.&lt;br /&gt;
&lt;br /&gt;
A [[Getting Started#Demos Archive|Demo Archive]] was put together in September 2023 to get ready to show to youtubers, some of these are linked once more, in this page.   &lt;br /&gt;
&lt;br /&gt;
There&#039;s also the Foenix Marketplace website maintained by EMWhite with its own collection of articles and software http://apps.emwhite.org/foenixmarketplace/.  &lt;br /&gt;
&lt;br /&gt;
===== Curated SD card collection of games, demos, utilities =====&lt;br /&gt;
Here is a download link to a zip file meant to be extracted into the root of an SD card: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
&lt;br /&gt;
Best to wipe out your SD card and start anew with the contents of this extracted to root. Micah&#039;s file manager doesn&#039;t like long lists of files so it really is best to not overdo it. I tried to minimize the files in root, but I couldn&#039;t for everything.&lt;br /&gt;
&lt;br /&gt;
Open the readme.txt file with moreorless to see some instructions about the collection. Best to run /- fm first, then open the readme.txt from it&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|F256 f/term&lt;br /&gt;
|Terminal emulator for F256K and Jr with classic (flat) memory load&lt;br /&gt;
|Micah&lt;br /&gt;
| - fterm.pgZ or use f/manager&lt;br /&gt;
|https://github.com/WartyMN/F256-terminal/blob/main/release/fterm.pgZ&lt;br /&gt;
|-&lt;br /&gt;
|FoenixTarot&lt;br /&gt;
|Tarot card readings in SuperBasic&lt;br /&gt;
|Mike&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/mcassera/FoenixTarot/tree/main&lt;br /&gt;
|-&lt;br /&gt;
|Forthf256&lt;br /&gt;
|Forth implementation&lt;br /&gt;
|Vasyl&lt;br /&gt;
|pgz in its forth/ folder&lt;br /&gt;
|https://github.com/VasylTsv/ForthX16&lt;br /&gt;
|-&lt;br /&gt;
|WildBits Graphic Toolkit&lt;br /&gt;
|(fmr. F256-GraphicToolkit) Sprite editor, Tilemap editor, Font editor + misc tools&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/econtrerasd/F256-GraphicToolkit/releases&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Demos ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|badapple&lt;br /&gt;
|A 80x60 textmode port of Bad Apple, uses the VS1053b for quality mp3 audio. Needs a Jr2 or K2!&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz*&lt;br /&gt;
|*unzip badapple.zip into the root of your SD card. If done right, the 3 files within will be in the demos/ folder. The program expects its data file there when it runs. https://github.com/Mu0n/F256MiscGoodies/blob/main/apps/badapple.zip&lt;br /&gt;
|-&lt;br /&gt;
|balls&lt;br /&gt;
|Draw a good quantity of multiplexed sprites, fast. Balls bouncing around&lt;br /&gt;
|celton&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/FoenixRetro/demos/blob/main/MultiplexedSprites.md&lt;br /&gt;
|-&lt;br /&gt;
|F256Archon&lt;br /&gt;
|Splash screen intro, plays MIDI using the SAM2695, requires a K2 or Jr2&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256Archon/releases&lt;br /&gt;
|-&lt;br /&gt;
|f256_life&lt;br /&gt;
|An implementation of Conway&#039;s game of life&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_life&lt;br /&gt;
|-&lt;br /&gt;
|F256 Mandelbrot&lt;br /&gt;
|Draws Mandelbrot set fast (5 mins) using coprocessor math. Allows to zoom into the set.&lt;br /&gt;
|mgr42&lt;br /&gt;
|uses basic loader&lt;br /&gt;
|https://github.com/rmsk2/F256_Mandelbrot&lt;br /&gt;
|-&lt;br /&gt;
|F256ShowCase&lt;br /&gt;
|Shows sliding tiling graphics, moves with joystick&lt;br /&gt;
|eriktier&lt;br /&gt;
|$0000&lt;br /&gt;
|https://github.com/pig-games/F256Showcase&lt;br /&gt;
|-&lt;br /&gt;
|fnxmas23 &lt;br /&gt;
|PSG mod music, scrolling text, sound effects, must see demo!&lt;br /&gt;
|dwsJason and digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/apps/xmas24_k2.pgz revised version that can run on wave 2 Jr2 and K2 as well&lt;br /&gt;
|-&lt;br /&gt;
|foenixmas23&lt;br /&gt;
|Xmas 2023 demo with SID music from the classic 1983 C64 xmas demo&lt;br /&gt;
|EMWhite&lt;br /&gt;
|uses basic loader&lt;br /&gt;
|http://apps.emwhite.org/shared-files/815/?foenixmas23.zip&lt;br /&gt;
|-&lt;br /&gt;
|livingworlds&lt;br /&gt;
|Living Worlds, a port of a color cycling by Mark Ferrari, ported here on the F256 by haydenkale&lt;br /&gt;
|haydenkale&lt;br /&gt;
|$0000&lt;br /&gt;
|https://github.com/clandrew/livingworlds/tree/e4532e0d530b76ccb90368fdf5ad10bfa2deeb12&lt;br /&gt;
|-&lt;br /&gt;
|mandel&lt;br /&gt;
|Will draw a mandelbrot set in 3 hours, more useful as a stability test than a useful fractal program&lt;br /&gt;
|Mu0n&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles?tab=readme-ov-file#fractal&lt;br /&gt;
|-&lt;br /&gt;
|mariobros&lt;br /&gt;
|Tilemap and platformer test based on Mario Bros. (1983)&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/mariobros&lt;br /&gt;
|-&lt;br /&gt;
|pendulum&lt;br /&gt;
|Sprite and MIDI demo&lt;br /&gt;
|MikeC&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/pendulum&lt;br /&gt;
|-&lt;br /&gt;
|wormhole&lt;br /&gt;
|Shows a fast wireframe animation of a wormhole&lt;br /&gt;
|haydenkale&lt;br /&gt;
|pgz or bin at $0000&lt;br /&gt;
|https://github.com/clandrew/wormhole?tab=readme-ov-file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|bbombers&lt;br /&gt;
|Boulder Bombers (Alpha-2)  Clone of Canyon Bombers&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/BoulderBombers&amp;lt;nowiki/&amp;gt;https://github.com/scttgs0/BoulderBombers/releases/tag/alpha_2&lt;br /&gt;
|-&lt;br /&gt;
|Bombsweeper&lt;br /&gt;
|Bomb sweeper port&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/855689509520932885/1196352934083035156&lt;br /&gt;
|-&lt;br /&gt;
|Cosmic&lt;br /&gt;
|Shoot &#039;em up&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discordapp.com/channels/691915291721990194/1054250238308790342/1175982979537969214&lt;br /&gt;
|-&lt;br /&gt;
|F256-Trek&lt;br /&gt;
|Updated Trek, with modern F256 Graphics&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|[https://github.com/econtrerasd/Trek-F256/releases/tag/v1.0 https://github.com/econtrerasd/Trek-F256/releases]&lt;br /&gt;
|-&lt;br /&gt;
|F256 two to the power of eleven&lt;br /&gt;
|Port of the puzzle game of 2048&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/F256_2048&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|fillerup&lt;br /&gt;
|Fill &#039;er Up (WIP)&lt;br /&gt;
Qix-like game&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/Fill-er-up&lt;br /&gt;
|-&lt;br /&gt;
|FusionDrive&lt;br /&gt;
|An outrun type game that also plays a MIDI soundtrack&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|wip v0.2, can use a NES pad #1 to move around, or left/right arrow keys currently https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
|-&lt;br /&gt;
|jewelkeeper&lt;br /&gt;
|Sokoban port&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/apps/jewelkeeper.pgz&amp;lt;nowiki/&amp;gt;You can now specify a level file when loading the game &amp;lt;code&amp;gt;/- jewelkeeper.pgz &amp;lt;levels.txt&amp;gt;&amp;lt;/code&amp;gt;.  Find more levels at https://www.sourcecode.se/sokoban/levels.php.  Keep in mind the maximum level dimension is 20x15, anything larger will be ignored&lt;br /&gt;
|-&lt;br /&gt;
|Jr Wördl&lt;br /&gt;
|port of Wordle&lt;br /&gt;
|AgeAgeEye&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/ageageeye/Superbasic-F256Jr-examples&lt;br /&gt;
|-&lt;br /&gt;
|kartdemo&lt;br /&gt;
|Kart racing game&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225217654487253094/1228246780840513556&lt;br /&gt;
|-&lt;br /&gt;
|Lair of the Lich King&lt;br /&gt;
|Rogue like dungeon crawler. Demo has 3 levels; full has 25+&lt;br /&gt;
|Micah&lt;br /&gt;
| - lkdemo/lk.pgz&lt;br /&gt;
|[https://discord.com/channels/691915291721990194/1230670413361844244/1317256215566487593 1.0 Beta 19 Demo]&lt;br /&gt;
|-&lt;br /&gt;
|livewire&lt;br /&gt;
|Livewire (WIP)&lt;br /&gt;
Tempest-like game&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/Livewire&lt;br /&gt;
|-&lt;br /&gt;
|Maze-Munch&lt;br /&gt;
|Pac-Man clone&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/Maze-Munch&lt;br /&gt;
|-&lt;br /&gt;
|pdefense&lt;br /&gt;
|Planetary Defense (WIP)&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
mouse&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/PlanetaryDefense&lt;br /&gt;
|-&lt;br /&gt;
|Shanghai/Mahjongg&lt;br /&gt;
|A clone of Shanghai. Also known as Mahjongg&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz or KUP&lt;br /&gt;
mouse needed&lt;br /&gt;
|https://github.com/rmsk2/f256_mahjong&lt;br /&gt;
|-&lt;br /&gt;
|Ski-Jr&lt;br /&gt;
|Ski game downhill&lt;br /&gt;
|digarok&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/digarok/superbasic-traveler/blob/main/ski-jr.bas&lt;br /&gt;
|-&lt;br /&gt;
|Track &amp;amp; Field&lt;br /&gt;
|Olympic Game by Konami (WIP)&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick or keyboard&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tetris&lt;br /&gt;
|Good old 80&#039;s game&lt;br /&gt;
|Daniel Tremblay (Grenouye)&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick or keyboard&lt;br /&gt;
|https://github.com/dtremblay/c256-tetris/tree/f256k&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #01 - April 6th/7th 2024 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|15puzzle&lt;br /&gt;
|Number sort puzzle&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_15puzzle/releases&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Flight Simulator&lt;br /&gt;
|flying simulator&lt;br /&gt;
|sduensin&lt;br /&gt;
|pgz&lt;br /&gt;
|https://cdn.discordapp.com/attachments/1225481966200029286/1227764847819620454/shotel.pgz&lt;br /&gt;
|-&lt;br /&gt;
|frisbee&lt;br /&gt;
|Frisbee throw past sport game&lt;br /&gt;
|dwsJason&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dwsJason/f256/blob/develop/merlin32/frisbee/frisbee.pgz&lt;br /&gt;
|-&lt;br /&gt;
|Impasse&lt;br /&gt;
|Shoot &#039;em up&lt;br /&gt;
|digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225481966200029286/1227075699895046235&lt;br /&gt;
|-&lt;br /&gt;
|soccur&lt;br /&gt;
|mutliplayer game of soccer&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|executable:https://discord.com/channels/691915291721990194/1225481966200029286/1226808228948611184&lt;br /&gt;
source code:&lt;br /&gt;
https://discord.com/channels/691915291721990194/1225481966200029286/1226812472069980232&lt;br /&gt;
|-&lt;br /&gt;
|Trek&lt;br /&gt;
|port of classic Star Trek game&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225481966200029286/1226727849944289341&lt;br /&gt;
|-&lt;br /&gt;
|Typing Star&lt;br /&gt;
|typing reaction game&lt;br /&gt;
|haydenkale&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/clandrew/typestar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #02 - October 25th-November 1st 2024 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Bach&#039;s MIDI Hero&lt;br /&gt;
|Free MIDI/PSG play + note play tutorial&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
the MIDI feature requires a F256K2 or F256Jr2; a legacy PSG option also allows F256K and F256Jr to still hear it. Optionally uses a MIDI in controller plugged in.&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles/releases/download/v1.2/BachHero.pgz&lt;br /&gt;
|-&lt;br /&gt;
|f256_snake&lt;br /&gt;
|&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz. Use cursor keys, Atari joystick or SNES pad to play&lt;br /&gt;
|https://github.com/rmsk2/f256_snake&lt;br /&gt;
|-&lt;br /&gt;
|fnxsnake&lt;br /&gt;
|&lt;br /&gt;
|silk-neon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/ksiondag/fnxsnake&lt;br /&gt;
|-&lt;br /&gt;
|The Hallow&lt;br /&gt;
|&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/FoenixGameJamOct2024&lt;br /&gt;
|-&lt;br /&gt;
|Halloween Birthday&lt;br /&gt;
|&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/GameJam2024_F256K&lt;br /&gt;
|-&lt;br /&gt;
|Haunted Mansion&lt;br /&gt;
|&lt;br /&gt;
|digarok&lt;br /&gt;
|superbasic&lt;br /&gt;
|https://github.com/digarok/fnxgamejam-haunted-mansion&lt;br /&gt;
|-&lt;br /&gt;
|Kooyan&lt;br /&gt;
|&lt;br /&gt;
|Grenouye&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dtremblay/kooyan.git&lt;br /&gt;
|-&lt;br /&gt;
|Spooky Run&lt;br /&gt;
|&lt;br /&gt;
|dwsJason&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dwsJason/spooky&lt;br /&gt;
|-&lt;br /&gt;
|Trick or Treat&lt;br /&gt;
|&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/TrickOrTreat&lt;br /&gt;
|-&lt;br /&gt;
|Ultima III - Exodus&lt;br /&gt;
|port&lt;br /&gt;
|Minstrel Dragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/minstreldragon/F256_Ultima_3&lt;br /&gt;
|-&lt;br /&gt;
|Warlock&lt;br /&gt;
|remake of 68000 game&lt;br /&gt;
|xDraconian&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick&lt;br /&gt;
DOWN=change_level&lt;br /&gt;
UP=jump&lt;br /&gt;
UP-LEFT=leap&lt;br /&gt;
UP-RIGHT=leap&lt;br /&gt;
|https://github.com/scttgs0/Foenix_GameJam_Oct2024&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Game Jam #03 - April 18th-April 27th 2025 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Arcade Shanghai v1.2&lt;br /&gt;
|Shanghai clone&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic, keep the .bas program in root, the rest in the provided ashanghai/ folder&lt;br /&gt;
|https://github.com/econtrerasd/ashanghai/releases&lt;br /&gt;
|-&lt;br /&gt;
|Bawk Bawk Cluck Cluck&lt;br /&gt;
|Chicken themed platformer&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/FoenixGameJamApr2025&lt;br /&gt;
|-&lt;br /&gt;
|BitLadder&lt;br /&gt;
|Shoot &#039;Em Up&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz. For full sound compatibility, a Jr2 or K2 is needed. &lt;br /&gt;
Uses 4 sound chips! (PSG, SID, OPL3, MIDI)&lt;br /&gt;
|https://mu0n.itch.io/bitladder&lt;br /&gt;
|-&lt;br /&gt;
|F256_Commando&lt;br /&gt;
|Commando port&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/F256_Commando&lt;br /&gt;
|-&lt;br /&gt;
|F256_LodeRunner&lt;br /&gt;
|Lode Runner port&lt;br /&gt;
|Minstrel Dragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/minstreldragon/F256_Loderunner/releases&lt;br /&gt;
|-&lt;br /&gt;
|Mahjong&lt;br /&gt;
|Shangai clone&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_mahjong/releases&lt;br /&gt;
|-&lt;br /&gt;
|Quarth&lt;br /&gt;
|Block placement arcade game&lt;br /&gt;
|Grenouye&lt;br /&gt;
|pgz&lt;br /&gt;
|https://grenouye.itch.io/f256-quarth&lt;br /&gt;
|-&lt;br /&gt;
|Skee(ster)-Ball&lt;br /&gt;
|&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/skeeball256/tree/main&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #04 - November-December 2025 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Fallitaire&lt;br /&gt;
|A cozy fall-themed twist on Pyramid Solitaire, built for the Foenix F256K2 Game Jam!&lt;br /&gt;
|Programmer Vs World&lt;br /&gt;
|bas&lt;br /&gt;
|https://programmervsworld.itch.io/fallitaire&lt;br /&gt;
|-&lt;br /&gt;
|H.E.R.O.&lt;br /&gt;
|Port of the classic game H.E.R.O.&lt;br /&gt;
|Cibee&lt;br /&gt;
|pgz&lt;br /&gt;
|https://c1bee.itch.io/hero&lt;br /&gt;
|-&lt;br /&gt;
|Leaderboard&lt;br /&gt;
|Golf game&lt;br /&gt;
|xDraconian&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1424187774642290799/1456104940186501132&lt;br /&gt;
|-&lt;br /&gt;
|Pitfall&lt;br /&gt;
|Port of the classic Pitfall game from Activision&lt;br /&gt;
|MinstrelDragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://minstrel.itch.io/pitfall-foenix-f256x&lt;br /&gt;
|-&lt;br /&gt;
|Return of the Falcon&lt;br /&gt;
|&lt;br /&gt;
|Callisto&lt;br /&gt;
|TBD&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Swicheroo&lt;br /&gt;
|An Alternate Puzzle Game&lt;br /&gt;
|jbaker8935&lt;br /&gt;
|pgz&lt;br /&gt;
|https://jbaker8935.itch.io/switcheroo&lt;br /&gt;
|-&lt;br /&gt;
|Track Day&lt;br /&gt;
|v1.0 top down race game vs computer controlled opponents&lt;br /&gt;
|MikeC&lt;br /&gt;
|pgz&lt;br /&gt;
|https://mcassera.itch.io/track-day-racing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Music ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|cozyMIDI&lt;br /&gt;
|Plays a SMF with the SAM2695 or VS1053b &lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|cozyMIDI v2.5 can open and play type 0 and type 1 standard MIDI files (SMF)&lt;br /&gt;
needs a Jr2 or K2&lt;br /&gt;
with a 2x core at https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
run operation 1: just as itself, it will force you to pick a midi file in the &#039;midi/&#039; folder /- cozymidi&lt;br /&gt;
&lt;br /&gt;
run operation 2: in f/manager, if you put this as &amp;lt;code&amp;gt;midiplayer.pgz&amp;lt;/code&amp;gt;in the &#039;_apps/&#039; folder, f/manager will open midi file with it when you launch .mid files. &lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/cozymidi.pgz&lt;br /&gt;
|-&lt;br /&gt;
|digestMidi&lt;br /&gt;
|converts .mid to .dim&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|.mid files are slow to load, parse and prepare for a playback. This tool comes in to convert them into a .dim format that strips out unnecessary MIDI commands and sets it up for timer0 time delays. Works with type 0 and type 1 standard midi files. This tools does the conversion and lets you hear the result.&lt;br /&gt;
Find the latest version here: https://github.com/Mu0n/F256MiscGoodies/tree/main/apps&lt;br /&gt;
|-&lt;br /&gt;
|EdInHisLib&lt;br /&gt;
|SID+OPL3 simultaneously&lt;br /&gt;
|beethead, ported from xantax&lt;br /&gt;
|pgz&lt;br /&gt;
|F256 port: https://discordapp.com/channels/691915291721990194/1054249926521016392/1184413356598231120&lt;br /&gt;
original: &amp;lt;nowiki&amp;gt;https://csdb.dk/release/?id=170898&amp;lt;/nowiki&amp;gt;. Not 100% accurate but close.&lt;br /&gt;
|-&lt;br /&gt;
|F256amp&lt;br /&gt;
|mp3, ogg, wav, wma file playback&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|(aka audioplayer.pgz) v2.3 Needs a Jr.2 or K2 since it uses the VS1053b chip.&lt;br /&gt;
For a starter collection of .mp3 and other audio files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
run operation 1: just as itself, it will force you to pick an audio file. it expects a &amp;lt;code&amp;gt;media/mp3/&amp;lt;/code&amp;gt; folder, but it can live without it and peek into the root instead. &lt;br /&gt;
&lt;br /&gt;
run operation 2: with an argument, it will auto-play it: /- f256amp yourmp3file.mp3 &lt;br /&gt;
&lt;br /&gt;
run operation 3:  in f/manager, if you put this as &amp;lt;code&amp;gt;audioplayer.pgz&amp;lt;/code&amp;gt; in the &#039;_apps/&#039; folder. This lets f/manager automatically open up .mp3, .wav, .ogg, .wma that you press enter on.&lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/f256amp.pgz&lt;br /&gt;
|-&lt;br /&gt;
|FireJam&lt;br /&gt;
|all chips, music playing with MIDI in&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v1.2 MIDI in and out capable, it will still partially work with a Jr. (PSG, and SID if you have them), a K (PSG, SID, OPL3) and the newest wave 2 Jr2 and K2 (PSG, SID, OPL3, SAM, VS1053b).&lt;br /&gt;
Best to use with a MIDI in controller, but it&#039;ll be controllable with arrows and space to make notes individually, or the F keys to start beats. https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
|-&lt;br /&gt;
|jrtracker&lt;br /&gt;
|Tracker based in basic and uses the PSG&lt;br /&gt;
(considered obsolete, use tracker2)&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://ptb.discord.com/channels/691915291721990194/1008139105386889346/1188292876984143983&lt;br /&gt;
|-&lt;br /&gt;
|modo&lt;br /&gt;
|MOD player using the PSG&lt;br /&gt;
|dwsJason and digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discordapp.com/channels/691915291721990194/855689509520932885/1190723114661859429&lt;br /&gt;
|-&lt;br /&gt;
|Musik&lt;br /&gt;
|Music piece demo using MIDI&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/Musik/blob/main/Musik.PGZ&amp;lt;nowiki/&amp;gt;Musikalisches Würfelspiel&lt;br /&gt;
Requires a Jr2 or K2 since it uses MIDI&lt;br /&gt;
|-&lt;br /&gt;
|opl3snooper&lt;br /&gt;
|playback of VGM files (that use opl2 and opl3) and MIDI in&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v1.1 mainly plays back vgm files, but you can pause it and snoop around the channel instruments and play up to 18 note polyphony with MIDI in. expects a collection in media/vgm/, or it will browse from the root if it can&#039;t find.  &lt;br /&gt;
It can load a .spl (Simple PLaylist) text file, which is one file per line, including their respective paths. &lt;br /&gt;
Requires a Jr2 or K2 with a 2x core to use the extra bank of SRAM.&lt;br /&gt;
For a starter collection of .vgm files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
run operation 1: just as itself, it will force you to pick a midi file in the &#039;media/vgm/&#039; folder &lt;br /&gt;
&lt;br /&gt;
run operation 2: in f/manager (v1.1b9 and up), if you put this as &amp;lt;code&amp;gt;vgmplayer.pgz&amp;lt;/code&amp;gt;in the &#039;_apps/&#039; folder, f/manager will open midi file with it when you launch .vgm files. &lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/opl3snooper.pgz &lt;br /&gt;
|-&lt;br /&gt;
|opl3tweak&lt;br /&gt;
|uses MIDI in, plays 18 channels polyphony in real time to the YMF262 OPL3. Fish for random register values.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v0.1. Can&#039;t save or load instrument definitions yet. Needs a K2 with a MIDI in currently.  https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/opl3tweak.pgz&lt;br /&gt;
Arrows to move around, + and - keys to incr/decr values or type in a hex value directly under the highlighted position.&lt;br /&gt;
|-&lt;br /&gt;
|piano&lt;br /&gt;
|Plays some PSG notes with the keyboard&lt;br /&gt;
|Mu0n&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles?tab=readme-ov-file#pulse-sound-generator-piano&lt;br /&gt;
|-&lt;br /&gt;
|playvgm&lt;br /&gt;
|plays a headless vgm file with OPL3&lt;br /&gt;
|G33kyAndIKnowIt&lt;br /&gt;
|pgx&lt;br /&gt;
|https://github.com/natebarney/playvgm-f256k&lt;br /&gt;
some example music files can be gotten from this post:&lt;br /&gt;
[https://discord.com/channels/691915291721990194/975117322836656138/1220366429640065074 https://discord.com/channels/6][https://discord.com/channels/691915291721990194/975117322836656138/1220366429640065074 91915291721990194/975117322836656138/1220366429640065074]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) open a normal .vgm into a hex editor &amp;lt;nowiki/&amp;gt;and cut out the header bytes from 0x00 to 0x&amp;lt;nowiki/&amp;gt;FF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) run by first using superbasic&#039;s &#039;&#039;&#039;&#039;&#039;bload&#039;&#039;&#039;&#039;&#039; &#039;&#039;&#039;&#039;&#039;&amp;quot;yourmusicfile&amp;quot;, $01000&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
followed by running this program with &#039;&#039;&#039;&#039;&#039;/- playvgm.pgx&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|sidtweak&lt;br /&gt;
|uses MIDI in, plays 6 channels polyphony in real time to the dual SID. Fish for random register values.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v0.1. Can&#039;t save or load instrument definitions yet. Needs a K2 with a MIDI in currently. https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/sidtweak.pgz&lt;br /&gt;
Arrows to move around, + and - keys to incr/decr values or type in a hex value directly under the highlighted position.&lt;br /&gt;
|-&lt;br /&gt;
|rawsidplayer&lt;br /&gt;
|plays raw PSID files from the HVSC collection, converted by zigreSID&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|(formely psidplayer) v0.2 find rawsidplayer.pgz and a starter .rsd file (raw sid dumps). For a starter collection of .rsd files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection &lt;br /&gt;
extract sid.zip into a folder /sid/ in the root of your SD card, that&#039;s where psidplayer.pgz will first look to let you pick a file. failing that, it will fall back to the root folder and let you navigate.&lt;br /&gt;
&lt;br /&gt;
program link:&lt;br /&gt;
&lt;br /&gt;
https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/rawsidplayer.pgz&lt;br /&gt;
|-&lt;br /&gt;
|tracker2 v1.5&lt;br /&gt;
|Like jrtracker.bas, but using both PSGs&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/econtrerasd/Tracker2/releases&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Uti&amp;lt;nowiki/&amp;gt;lities ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Descrip&amp;lt;nowiki/&amp;gt;tion&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|basic2text&lt;br /&gt;
|A simple utility for translating Commodore BASIC (all variants) from its native tokenized file format to a text format that can be opened with SuperBASIC. Does not perform any code translation: all adaptation is up to you. &lt;br /&gt;
|Micah&lt;br /&gt;
|pgZ&lt;br /&gt;
|https://github.com/WartyMN/F256-BasText/releases/latest&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|dcopy&lt;br /&gt;
|A tool to copy files from one drive to another or to/from your PC via RS-232 and a nullmodem cable&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz/flash&lt;br /&gt;
|https://github.com/rmsk2/f256_dcopy&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|f/manager&lt;br /&gt;
|A general file utility, launcher, and memory viewing program. Dual-panel file/memory browsers; copy between disks,  between folders on same disk, and from memory to disk and vice versa; delete, rename, and duplicate files; view files as hex or text (with word-wrap); launch applications and known file types; set the RTC clock; search in RAM and flash. Works with internal SD card and IEC devices such as FNX1591 and Commodore 1541. Can be installed in primary flash position ahead of SuperBASIC or DOS, or at a higher location. Can also be run from disk with &amp;quot;- fm.pgz&amp;quot;.&lt;br /&gt;
|Micah&lt;br /&gt;
|pgZ/flash&lt;br /&gt;
|https://github.com/WartyMN/F256-FileManager/releases&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|f256_reset&lt;br /&gt;
|A small utility that lets you reset the machine through this piece of flash software&lt;br /&gt;
|mgr42&lt;br /&gt;
|flash&lt;br /&gt;
|https://github.com/rmsk2/f256_reset&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|fcart&lt;br /&gt;
|A program that allows to write data to flash expansion cartridges &lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz, on-board and cartridge flash&lt;br /&gt;
|https://github.com/rmsk2/cartflash&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|flashcart&lt;br /&gt;
|Allows to wipe a block of flash or write a program to a flash cart, from this basic program from the F256Jr/K&lt;br /&gt;
|redfool.&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Red-Fool/F256_FlashCart/tree/main&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|flashselect&lt;br /&gt;
|Allows to select a program to start from a flash cartridge via a menu&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz, on-board and cartridge flash&lt;br /&gt;
|https://github.com/rmsk2/flashselect&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|fonts&lt;br /&gt;
|A variety of fonts using the standard F256 character set arrangement. Load with the F256 file manager (f/manager), or your own code.&lt;br /&gt;
|Micah&lt;br /&gt;
|(not a program)&lt;br /&gt;
|[https://github.com/WartyMN/Foenix-Fonts/tree/main https://github.com/WartyMN/Foenix-Fonts]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|midiStuff&lt;br /&gt;
|Test program for a F256K2 or F256Jr2 that sends MIDI data to the internal sam2695 dream chip that produces MIDI based audio. Also test a keyboard controller plugged in the MIDI in port.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles/blob/main/README.md#midistuff&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|moreorless&lt;br /&gt;
|A text editor for the Foenix 256 line of computers&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/moreorless/releases/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pgz2flash&lt;br /&gt;
|A program for your Linux, Windows or MacOS machine to turn any PGZ or SuperBASIC program into a KUP which can be run from cartridge or onboard flash memory&lt;br /&gt;
|mgr42&lt;br /&gt;
|Executable for modern computers&lt;br /&gt;
|https://github.com/rmsk2/pgz2flash&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|sidTester&lt;br /&gt;
|Simple superbasic program that tests out all 3 voices of the SID1 on the Jr (if populated), K, Jr2 and K2. Ported by Mu0n, made by andy on HackJunk.com https://hackjunk.com/2017/11/07/commodore-64-sid-tester/&lt;br /&gt;
|andy&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/blob/main/apps/sidtester.bas&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|testsuite.bas&lt;br /&gt;
|a series of tests for your F256, video modes and sound chips&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|run from the root, &lt;br /&gt;
https://github.com/econtrerasd/testSuite-F256/releases&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|wget&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|&amp;lt;nowiki/&amp;gt;fetches a file from a http address if you have a network connection active. Works with the K and Jr. ESP32 Feather &#039;huzzah&#039; board. Not meant to be used with the K2 and Jr2 Wiznet chip.&lt;br /&gt;
|gadget&lt;br /&gt;
|&amp;lt;nowiki/&amp;gt;pgz/flash&lt;br /&gt;
|https://github.com/ghackwrench/F256_wget&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sample Code ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Assembly examples&lt;br /&gt;
|Sample programs for several features of the Foenix F256K and Jr.&lt;br /&gt;
|mgr42&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/rmsk2/Hello_Foenix256_Jr/blob/main/testprogs.md&lt;br /&gt;
|-&lt;br /&gt;
|cc65 example&lt;br /&gt;
|c example code&lt;br /&gt;
|gadget&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/ghackwrench/F256_Jr_Kernel_DOS&lt;br /&gt;
|-&lt;br /&gt;
|digarok basic stuff&lt;br /&gt;
|Lots of basic examples&lt;br /&gt;
|digarok&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/digarok/superbasic-traveler/tree/main&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K asm doodles&lt;br /&gt;
|Some asm examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleASMdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K basic doodles&lt;br /&gt;
|Some basic examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K C doodles&lt;br /&gt;
|Some C examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Raúl SQ basic repo&lt;br /&gt;
|F256 SuperBASIC Trigonometry&lt;br /&gt;
|Raúl SQ&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/raul-sq/FoenixF256K2&lt;br /&gt;
|-&lt;br /&gt;
|tcp example&lt;br /&gt;
|connects to a server and gets typed in text echoed back to you&lt;br /&gt;
|gadget&lt;br /&gt;
|$2000&lt;br /&gt;
|https://github.com/ghackwrench/F256_example_tcp&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_6502&amp;diff=38376</id>
		<title>Software for 6502</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_6502&amp;diff=38376"/>
		<updated>2026-01-07T18:42:37Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Music */ cozymidi v2.5&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note that when an hex address is given, it&#039;s meant to instruct as to which address to bload or to send (ie foenixmgr python script) the program (ie a .bin file) to before running it. For extra help on how to run .bin files and almost every possible scheme that has to be used to run program, you can consult this video that&#039;s also part of [[Getting Started]], this one: https://www.youtube.com/watch?v=0ShFv89KGDs&lt;br /&gt;
&lt;br /&gt;
Many download links are posts in the main [https://discord.gg/9vjUEGgcUS Foenix Retro Systems discord server] which will require you to join in order to get to them.&lt;br /&gt;
&lt;br /&gt;
A [[Getting Started#Demos Archive|Demo Archive]] was put together in September 2023 to get ready to show to youtubers, some of these are linked once more, in this page.   &lt;br /&gt;
&lt;br /&gt;
There&#039;s also the Foenix Marketplace website maintained by EMWhite with its own collection of articles and software http://apps.emwhite.org/foenixmarketplace/.  &lt;br /&gt;
&lt;br /&gt;
===== Curated SD card collection of games, demos, utilities =====&lt;br /&gt;
Here is a download link to a zip file meant to be extracted into the root of an SD card: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
&lt;br /&gt;
Best to wipe out your SD card and start anew with the contents of this extracted to root. Micah&#039;s file manager doesn&#039;t like long lists of files so it really is best to not overdo it. I tried to minimize the files in root, but I couldn&#039;t for everything.&lt;br /&gt;
&lt;br /&gt;
Open the readme.txt file with moreorless to see some instructions about the collection. Best to run /- fm first, then open the readme.txt from it&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|F256 f/term&lt;br /&gt;
|Terminal emulator for F256K and Jr with classic (flat) memory load&lt;br /&gt;
|Micah&lt;br /&gt;
| - fterm.pgZ or use f/manager&lt;br /&gt;
|https://github.com/WartyMN/F256-terminal/blob/main/release/fterm.pgZ&lt;br /&gt;
|-&lt;br /&gt;
|FoenixTarot&lt;br /&gt;
|Tarot card readings in SuperBasic&lt;br /&gt;
|Mike&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/mcassera/FoenixTarot/tree/main&lt;br /&gt;
|-&lt;br /&gt;
|Forthf256&lt;br /&gt;
|Forth implementation&lt;br /&gt;
|Vasyl&lt;br /&gt;
|pgz in its forth/ folder&lt;br /&gt;
|https://github.com/VasylTsv/ForthX16&lt;br /&gt;
|-&lt;br /&gt;
|WildBits Graphic Toolkit&lt;br /&gt;
|(fmr. F256-GraphicToolkit) Sprite editor, Tilemap editor, Font editor + misc tools&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/econtrerasd/F256-GraphicToolkit/releases&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Demos ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|badapple&lt;br /&gt;
|A 80x60 textmode port of Bad Apple, uses the VS1053b for quality mp3 audio. Needs a Jr2 or K2!&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz*&lt;br /&gt;
|*unzip badapple.zip into the root of your SD card. If done right, the 3 files within will be in the demos/ folder. The program expects its data file there when it runs. https://github.com/Mu0n/F256MiscGoodies/blob/main/apps/badapple.zip&lt;br /&gt;
|-&lt;br /&gt;
|balls&lt;br /&gt;
|Draw a good quantity of multiplexed sprites, fast. Balls bouncing around&lt;br /&gt;
|celton&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/FoenixRetro/demos/blob/main/MultiplexedSprites.md&lt;br /&gt;
|-&lt;br /&gt;
|F256Archon&lt;br /&gt;
|Splash screen intro, plays MIDI using the SAM2695, requires a K2 or Jr2&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256Archon/releases&lt;br /&gt;
|-&lt;br /&gt;
|f256_life&lt;br /&gt;
|An implementation of Conway&#039;s game of life&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_life&lt;br /&gt;
|-&lt;br /&gt;
|F256 Mandelbrot&lt;br /&gt;
|Draws Mandelbrot set fast (5 mins) using coprocessor math. Allows to zoom into the set.&lt;br /&gt;
|mgr42&lt;br /&gt;
|uses basic loader&lt;br /&gt;
|https://github.com/rmsk2/F256_Mandelbrot&lt;br /&gt;
|-&lt;br /&gt;
|F256ShowCase&lt;br /&gt;
|Shows sliding tiling graphics, moves with joystick&lt;br /&gt;
|eriktier&lt;br /&gt;
|$0000&lt;br /&gt;
|https://github.com/pig-games/F256Showcase&lt;br /&gt;
|-&lt;br /&gt;
|fnxmas23 &lt;br /&gt;
|PSG mod music, scrolling text, sound effects, must see demo!&lt;br /&gt;
|dwsJason and digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/apps/xmas24_k2.pgz revised version that can run on wave 2 Jr2 and K2 as well&lt;br /&gt;
|-&lt;br /&gt;
|foenixmas23&lt;br /&gt;
|Xmas 2023 demo with SID music from the classic 1983 C64 xmas demo&lt;br /&gt;
|EMWhite&lt;br /&gt;
|uses basic loader&lt;br /&gt;
|http://apps.emwhite.org/shared-files/815/?foenixmas23.zip&lt;br /&gt;
|-&lt;br /&gt;
|livingworlds&lt;br /&gt;
|Living Worlds, a port of a color cycling by Mark Ferrari, ported here on the F256 by haydenkale&lt;br /&gt;
|haydenkale&lt;br /&gt;
|$0000&lt;br /&gt;
|https://github.com/clandrew/livingworlds/tree/e4532e0d530b76ccb90368fdf5ad10bfa2deeb12&lt;br /&gt;
|-&lt;br /&gt;
|mandel&lt;br /&gt;
|Will draw a mandelbrot set in 3 hours, more useful as a stability test than a useful fractal program&lt;br /&gt;
|Mu0n&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles?tab=readme-ov-file#fractal&lt;br /&gt;
|-&lt;br /&gt;
|mariobros&lt;br /&gt;
|Tilemap and platformer test based on Mario Bros. (1983)&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/mariobros&lt;br /&gt;
|-&lt;br /&gt;
|wormhole&lt;br /&gt;
|Shows a fast wireframe animation of a wormhole&lt;br /&gt;
|haydenkale&lt;br /&gt;
|pgz or bin at $0000&lt;br /&gt;
|https://github.com/clandrew/wormhole?tab=readme-ov-file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|bbombers&lt;br /&gt;
|Boulder Bombers (Alpha-2)  Clone of Canyon Bombers&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/BoulderBombers&amp;lt;nowiki/&amp;gt;https://github.com/scttgs0/BoulderBombers/releases/tag/alpha_2&lt;br /&gt;
|-&lt;br /&gt;
|Bombsweeper&lt;br /&gt;
|Bomb sweeper port&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/855689509520932885/1196352934083035156&lt;br /&gt;
|-&lt;br /&gt;
|Cosmic&lt;br /&gt;
|Shoot &#039;em up&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discordapp.com/channels/691915291721990194/1054250238308790342/1175982979537969214&lt;br /&gt;
|-&lt;br /&gt;
|F256-Trek&lt;br /&gt;
|Updated Trek, with modern F256 Graphics&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|[https://github.com/econtrerasd/Trek-F256/releases/tag/v1.0 https://github.com/econtrerasd/Trek-F256/releases]&lt;br /&gt;
|-&lt;br /&gt;
|F256 two to the power of eleven&lt;br /&gt;
|Port of the puzzle game of 2048&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/F256_2048&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|fillerup&lt;br /&gt;
|Fill &#039;er Up (WIP)&lt;br /&gt;
Qix-like game&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/Fill-er-up&lt;br /&gt;
|-&lt;br /&gt;
|FusionDrive&lt;br /&gt;
|An outrun type game that also plays a MIDI soundtrack&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|wip v0.2, can use a NES pad #1 to move around, or left/right arrow keys currently https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
|-&lt;br /&gt;
|jewelkeeper&lt;br /&gt;
|Sokoban port&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/apps/jewelkeeper.pgz&amp;lt;nowiki/&amp;gt;You can now specify a level file when loading the game &amp;lt;code&amp;gt;/- jewelkeeper.pgz &amp;lt;levels.txt&amp;gt;&amp;lt;/code&amp;gt;.  Find more levels at https://www.sourcecode.se/sokoban/levels.php.  Keep in mind the maximum level dimension is 20x15, anything larger will be ignored&lt;br /&gt;
|-&lt;br /&gt;
|Jr Wördl&lt;br /&gt;
|port of Wordle&lt;br /&gt;
|AgeAgeEye&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/ageageeye/Superbasic-F256Jr-examples&lt;br /&gt;
|-&lt;br /&gt;
|kartdemo&lt;br /&gt;
|Kart racing game&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225217654487253094/1228246780840513556&lt;br /&gt;
|-&lt;br /&gt;
|Lair of the Lich King&lt;br /&gt;
|Rogue like dungeon crawler. Demo has 3 levels; full has 25+&lt;br /&gt;
|Micah&lt;br /&gt;
| - lkdemo/lk.pgz&lt;br /&gt;
|[https://discord.com/channels/691915291721990194/1230670413361844244/1317256215566487593 1.0 Beta 19 Demo]&lt;br /&gt;
|-&lt;br /&gt;
|livewire&lt;br /&gt;
|Livewire (WIP)&lt;br /&gt;
Tempest-like game&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/Livewire&lt;br /&gt;
|-&lt;br /&gt;
|Maze-Munch&lt;br /&gt;
|Pac-Man clone&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/Maze-Munch&lt;br /&gt;
|-&lt;br /&gt;
|pdefense&lt;br /&gt;
|Planetary Defense (WIP)&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
mouse&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/PlanetaryDefense&lt;br /&gt;
|-&lt;br /&gt;
|Shanghai/Mahjongg&lt;br /&gt;
|A clone of Shanghai. Also known as Mahjongg&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz or KUP&lt;br /&gt;
mouse needed&lt;br /&gt;
|https://github.com/rmsk2/f256_mahjong&lt;br /&gt;
|-&lt;br /&gt;
|Ski-Jr&lt;br /&gt;
|Ski game downhill&lt;br /&gt;
|digarok&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/digarok/superbasic-traveler/blob/main/ski-jr.bas&lt;br /&gt;
|-&lt;br /&gt;
|Track &amp;amp; Field&lt;br /&gt;
|Olympic Game by Konami (WIP)&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick or keyboard&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tetris&lt;br /&gt;
|Good old 80&#039;s game&lt;br /&gt;
|Daniel Tremblay (Grenouye)&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick or keyboard&lt;br /&gt;
|https://github.com/dtremblay/c256-tetris/tree/f256k&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #01 - April 6th/7th 2024 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|15puzzle&lt;br /&gt;
|Number sort puzzle&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_15puzzle/releases&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Flight Simulator&lt;br /&gt;
|flying simulator&lt;br /&gt;
|sduensin&lt;br /&gt;
|pgz&lt;br /&gt;
|https://cdn.discordapp.com/attachments/1225481966200029286/1227764847819620454/shotel.pgz&lt;br /&gt;
|-&lt;br /&gt;
|frisbee&lt;br /&gt;
|Frisbee throw past sport game&lt;br /&gt;
|dwsJason&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dwsJason/f256/blob/develop/merlin32/frisbee/frisbee.pgz&lt;br /&gt;
|-&lt;br /&gt;
|Impasse&lt;br /&gt;
|Shoot &#039;em up&lt;br /&gt;
|digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225481966200029286/1227075699895046235&lt;br /&gt;
|-&lt;br /&gt;
|soccur&lt;br /&gt;
|mutliplayer game of soccer&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|executable:https://discord.com/channels/691915291721990194/1225481966200029286/1226808228948611184&lt;br /&gt;
source code:&lt;br /&gt;
https://discord.com/channels/691915291721990194/1225481966200029286/1226812472069980232&lt;br /&gt;
|-&lt;br /&gt;
|Trek&lt;br /&gt;
|port of classic Star Trek game&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225481966200029286/1226727849944289341&lt;br /&gt;
|-&lt;br /&gt;
|Typing Star&lt;br /&gt;
|typing reaction game&lt;br /&gt;
|haydenkale&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/clandrew/typestar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #02 - October 25th-November 1st 2024 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Bach&#039;s MIDI Hero&lt;br /&gt;
|Free MIDI/PSG play + note play tutorial&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
the MIDI feature requires a F256K2 or F256Jr2; a legacy PSG option also allows F256K and F256Jr to still hear it. Optionally uses a MIDI in controller plugged in.&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles/releases/download/v1.2/BachHero.pgz&lt;br /&gt;
|-&lt;br /&gt;
|f256_snake&lt;br /&gt;
|&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz. Use cursor keys, Atari joystick or SNES pad to play&lt;br /&gt;
|https://github.com/rmsk2/f256_snake&lt;br /&gt;
|-&lt;br /&gt;
|fnxsnake&lt;br /&gt;
|&lt;br /&gt;
|silk-neon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/ksiondag/fnxsnake&lt;br /&gt;
|-&lt;br /&gt;
|The Hallow&lt;br /&gt;
|&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/FoenixGameJamOct2024&lt;br /&gt;
|-&lt;br /&gt;
|Halloween Birthday&lt;br /&gt;
|&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/GameJam2024_F256K&lt;br /&gt;
|-&lt;br /&gt;
|Haunted Mansion&lt;br /&gt;
|&lt;br /&gt;
|digarok&lt;br /&gt;
|superbasic&lt;br /&gt;
|https://github.com/digarok/fnxgamejam-haunted-mansion&lt;br /&gt;
|-&lt;br /&gt;
|Kooyan&lt;br /&gt;
|&lt;br /&gt;
|Grenouye&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dtremblay/kooyan.git&lt;br /&gt;
|-&lt;br /&gt;
|Spooky Run&lt;br /&gt;
|&lt;br /&gt;
|dwsJason&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dwsJason/spooky&lt;br /&gt;
|-&lt;br /&gt;
|Trick or Treat&lt;br /&gt;
|&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/TrickOrTreat&lt;br /&gt;
|-&lt;br /&gt;
|Ultima III - Exodus&lt;br /&gt;
|port&lt;br /&gt;
|Minstrel Dragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/minstreldragon/F256_Ultima_3&lt;br /&gt;
|-&lt;br /&gt;
|Warlock&lt;br /&gt;
|remake of 68000 game&lt;br /&gt;
|xDraconian&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick&lt;br /&gt;
DOWN=change_level&lt;br /&gt;
UP=jump&lt;br /&gt;
UP-LEFT=leap&lt;br /&gt;
UP-RIGHT=leap&lt;br /&gt;
|https://github.com/scttgs0/Foenix_GameJam_Oct2024&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Game Jam #03 - April 18th-April 27th 2025 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Arcade Shanghai v1.2&lt;br /&gt;
|Shanghai clone&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic, keep the .bas program in root, the rest in the provided ashanghai/ folder&lt;br /&gt;
|https://github.com/econtrerasd/ashanghai/releases&lt;br /&gt;
|-&lt;br /&gt;
|Bawk Bawk Cluck Cluck&lt;br /&gt;
|Chicken themed platformer&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/FoenixGameJamApr2025&lt;br /&gt;
|-&lt;br /&gt;
|BitLadder&lt;br /&gt;
|Shoot &#039;Em Up&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz. For full sound compatibility, a Jr2 or K2 is needed. &lt;br /&gt;
Uses 4 sound chips! (PSG, SID, OPL3, MIDI)&lt;br /&gt;
|https://mu0n.itch.io/bitladder&lt;br /&gt;
|-&lt;br /&gt;
|F256_Commando&lt;br /&gt;
|Commando port&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/F256_Commando&lt;br /&gt;
|-&lt;br /&gt;
|F256_LodeRunner&lt;br /&gt;
|Lode Runner port&lt;br /&gt;
|Minstrel Dragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/minstreldragon/F256_Loderunner/releases&lt;br /&gt;
|-&lt;br /&gt;
|Mahjong&lt;br /&gt;
|Shangai clone&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_mahjong/releases&lt;br /&gt;
|-&lt;br /&gt;
|Quarth&lt;br /&gt;
|Block placement arcade game&lt;br /&gt;
|Grenouye&lt;br /&gt;
|pgz&lt;br /&gt;
|https://grenouye.itch.io/f256-quarth&lt;br /&gt;
|-&lt;br /&gt;
|Skee(ster)-Ball&lt;br /&gt;
|&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/skeeball256/tree/main&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #04 - November-December 2025 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Fallitaire&lt;br /&gt;
|A cozy fall-themed twist on Pyramid Solitaire, built for the Foenix F256K2 Game Jam!&lt;br /&gt;
|Programmer Vs World&lt;br /&gt;
|bas&lt;br /&gt;
|https://programmervsworld.itch.io/fallitaire&lt;br /&gt;
|-&lt;br /&gt;
|H.E.R.O.&lt;br /&gt;
|Port of the classic game H.E.R.O.&lt;br /&gt;
|Cibee&lt;br /&gt;
|pgz&lt;br /&gt;
|https://c1bee.itch.io/hero&lt;br /&gt;
|-&lt;br /&gt;
|Leaderboard&lt;br /&gt;
|Golf game&lt;br /&gt;
|xDraconian&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1424187774642290799/1456104940186501132&lt;br /&gt;
|-&lt;br /&gt;
|Pitfall&lt;br /&gt;
|Port of the classic Pitfall game from Activision&lt;br /&gt;
|MinstrelDragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://minstrel.itch.io/pitfall-foenix-f256x&lt;br /&gt;
|-&lt;br /&gt;
|Return of the Falcon&lt;br /&gt;
|&lt;br /&gt;
|Callisto&lt;br /&gt;
|TBD&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Swicheroo&lt;br /&gt;
|An Alternate Puzzle Game&lt;br /&gt;
|jbaker8935&lt;br /&gt;
|pgz&lt;br /&gt;
|https://jbaker8935.itch.io/switcheroo&lt;br /&gt;
|-&lt;br /&gt;
|Track Day&lt;br /&gt;
|v1.0 top down race game vs computer controlled opponents&lt;br /&gt;
|MikeC&lt;br /&gt;
|pgz&lt;br /&gt;
|https://mcassera.itch.io/track-day-racing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Music ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|cozyMIDI&lt;br /&gt;
|Plays a SMF with the SAM2695 or VS1053b &lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|cozyMIDI v2.5 can open and play type 0 and type 1 standard MIDI files (SMF)&lt;br /&gt;
needs a Jr2 or K2&lt;br /&gt;
with a 2x core at https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
run operation 1: just as itself, it will force you to pick a midi file in the &#039;midi/&#039; folder /- cozymidi&lt;br /&gt;
&lt;br /&gt;
run operation 2: in f/manager, if you put this as &amp;lt;code&amp;gt;midiplayer.pgz&amp;lt;/code&amp;gt;in the &#039;_apps/&#039; folder, f/manager will open midi file with it when you launch .mid files. &lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/cozymidi.pgz&lt;br /&gt;
|-&lt;br /&gt;
|digestMidi&lt;br /&gt;
|converts .mid to .dim&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|.mid files are slow to load, parse and prepare for a playback. This tool comes in to convert them into a .dim format that strips out unnecessary MIDI commands and sets it up for timer0 time delays. Works with type 0 and type 1 standard midi files. This tools does the conversion and lets you hear the result.&lt;br /&gt;
Find the latest version here: https://github.com/Mu0n/F256MiscGoodies/tree/main/apps&lt;br /&gt;
|-&lt;br /&gt;
|EdInHisLib&lt;br /&gt;
|SID+OPL3 simultaneously&lt;br /&gt;
|beethead, ported from xantax&lt;br /&gt;
|pgz&lt;br /&gt;
|F256 port: https://discordapp.com/channels/691915291721990194/1054249926521016392/1184413356598231120&lt;br /&gt;
original: &amp;lt;nowiki&amp;gt;https://csdb.dk/release/?id=170898&amp;lt;/nowiki&amp;gt;. Not 100% accurate but close.&lt;br /&gt;
|-&lt;br /&gt;
|F256amp&lt;br /&gt;
|mp3, ogg, wav, wma file playback&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|(aka audioplayer.pgz) v2.3 Needs a Jr.2 or K2 since it uses the VS1053b chip.&lt;br /&gt;
For a starter collection of .mp3 and other audio files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
run operation 1: just as itself, it will force you to pick an audio file. it expects a &amp;lt;code&amp;gt;media/mp3/&amp;lt;/code&amp;gt; folder, but it can live without it and peek into the root instead. &lt;br /&gt;
&lt;br /&gt;
run operation 2: with an argument, it will auto-play it: /- f256amp yourmp3file.mp3 &lt;br /&gt;
&lt;br /&gt;
run operation 3:  in f/manager, if you put this as &amp;lt;code&amp;gt;audioplayer.pgz&amp;lt;/code&amp;gt; in the &#039;_apps/&#039; folder. This lets f/manager automatically open up .mp3, .wav, .ogg, .wma that you press enter on.&lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/f256amp.pgz&lt;br /&gt;
|-&lt;br /&gt;
|FireJam&lt;br /&gt;
|all chips, music playing with MIDI in&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v1.2 MIDI in and out capable, it will still partially work with a Jr. (PSG, and SID if you have them), a K (PSG, SID, OPL3) and the newest wave 2 Jr2 and K2 (PSG, SID, OPL3, SAM, VS1053b).&lt;br /&gt;
Best to use with a MIDI in controller, but it&#039;ll be controllable with arrows and space to make notes individually, or the F keys to start beats. https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
|-&lt;br /&gt;
|jrtracker&lt;br /&gt;
|Tracker based in basic and uses the PSG&lt;br /&gt;
(considered obsolete, use tracker2)&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://ptb.discord.com/channels/691915291721990194/1008139105386889346/1188292876984143983&lt;br /&gt;
|-&lt;br /&gt;
|modo&lt;br /&gt;
|MOD player using the PSG&lt;br /&gt;
|dwsJason and digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discordapp.com/channels/691915291721990194/855689509520932885/1190723114661859429&lt;br /&gt;
|-&lt;br /&gt;
|Musik&lt;br /&gt;
|Music piece demo using MIDI&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/Musik/blob/main/Musik.PGZ&amp;lt;nowiki/&amp;gt;Musikalisches Würfelspiel&lt;br /&gt;
Requires a Jr2 or K2 since it uses MIDI&lt;br /&gt;
|-&lt;br /&gt;
|opl3snooper&lt;br /&gt;
|playback of VGM files (that use opl2 and opl3) and MIDI in&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v1.1 mainly plays back vgm files, but you can pause it and snoop around the channel instruments and play up to 18 note polyphony with MIDI in. expects a collection in media/vgm/, or it will browse from the root if it can&#039;t find.  &lt;br /&gt;
It can load a .spl (Simple PLaylist) text file, which is one file per line, including their respective paths. &lt;br /&gt;
Requires a Jr2 or K2 with a 2x core to use the extra bank of SRAM.&lt;br /&gt;
For a starter collection of .vgm files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
run operation 1: just as itself, it will force you to pick a midi file in the &#039;media/vgm/&#039; folder &lt;br /&gt;
&lt;br /&gt;
run operation 2: in f/manager (v1.1b9 and up), if you put this as &amp;lt;code&amp;gt;vgmplayer.pgz&amp;lt;/code&amp;gt;in the &#039;_apps/&#039; folder, f/manager will open midi file with it when you launch .vgm files. &lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/opl3snooper.pgz &lt;br /&gt;
|-&lt;br /&gt;
|opl3tweak&lt;br /&gt;
|uses MIDI in, plays 18 channels polyphony in real time to the YMF262 OPL3. Fish for random register values.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v0.1. Can&#039;t save or load instrument definitions yet. Needs a K2 with a MIDI in currently.  https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/opl3tweak.pgz&lt;br /&gt;
Arrows to move around, + and - keys to incr/decr values or type in a hex value directly under the highlighted position.&lt;br /&gt;
|-&lt;br /&gt;
|piano&lt;br /&gt;
|Plays some PSG notes with the keyboard&lt;br /&gt;
|Mu0n&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles?tab=readme-ov-file#pulse-sound-generator-piano&lt;br /&gt;
|-&lt;br /&gt;
|playvgm&lt;br /&gt;
|plays a headless vgm file with OPL3&lt;br /&gt;
|G33kyAndIKnowIt&lt;br /&gt;
|pgx&lt;br /&gt;
|https://github.com/natebarney/playvgm-f256k&lt;br /&gt;
some example music files can be gotten from this post:&lt;br /&gt;
[https://discord.com/channels/691915291721990194/975117322836656138/1220366429640065074 https://discord.com/channels/6][https://discord.com/channels/691915291721990194/975117322836656138/1220366429640065074 91915291721990194/975117322836656138/1220366429640065074]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) open a normal .vgm into a hex editor &amp;lt;nowiki/&amp;gt;and cut out the header bytes from 0x00 to 0x&amp;lt;nowiki/&amp;gt;FF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) run by first using superbasic&#039;s &#039;&#039;&#039;&#039;&#039;bload&#039;&#039;&#039;&#039;&#039; &#039;&#039;&#039;&#039;&#039;&amp;quot;yourmusicfile&amp;quot;, $01000&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
followed by running this program with &#039;&#039;&#039;&#039;&#039;/- playvgm.pgx&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|sidtweak&lt;br /&gt;
|uses MIDI in, plays 6 channels polyphony in real time to the dual SID. Fish for random register values.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v0.1. Can&#039;t save or load instrument definitions yet. Needs a K2 with a MIDI in currently. https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/sidtweak.pgz&lt;br /&gt;
Arrows to move around, + and - keys to incr/decr values or type in a hex value directly under the highlighted position.&lt;br /&gt;
|-&lt;br /&gt;
|rawsidplayer&lt;br /&gt;
|plays raw PSID files from the HVSC collection, converted by zigreSID&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|(formely psidplayer) v0.2 find rawsidplayer.pgz and a starter .rsd file (raw sid dumps). For a starter collection of .rsd files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection &lt;br /&gt;
extract sid.zip into a folder /sid/ in the root of your SD card, that&#039;s where psidplayer.pgz will first look to let you pick a file. failing that, it will fall back to the root folder and let you navigate.&lt;br /&gt;
&lt;br /&gt;
program link:&lt;br /&gt;
&lt;br /&gt;
https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/rawsidplayer.pgz&lt;br /&gt;
|-&lt;br /&gt;
|tracker2 v1.5&lt;br /&gt;
|Like jrtracker.bas, but using both PSGs&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/econtrerasd/Tracker2/releases&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Uti&amp;lt;nowiki/&amp;gt;lities ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Descrip&amp;lt;nowiki/&amp;gt;tion&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|basic2text&lt;br /&gt;
|A simple utility for translating Commodore BASIC (all variants) from its native tokenized file format to a text format that can be opened with SuperBASIC. Does not perform any code translation: all adaptation is up to you. &lt;br /&gt;
|Micah&lt;br /&gt;
|pgZ&lt;br /&gt;
|https://github.com/WartyMN/F256-BasText/releases/latest&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|dcopy&lt;br /&gt;
|A tool to copy files from one drive to another or to/from your PC via RS-232 and a nullmodem cable&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz/flash&lt;br /&gt;
|https://github.com/rmsk2/f256_dcopy&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|f/manager&lt;br /&gt;
|A general file utility, launcher, and memory viewing program. Dual-panel file/memory browsers; copy between disks,  between folders on same disk, and from memory to disk and vice versa; delete, rename, and duplicate files; view files as hex or text (with word-wrap); launch applications and known file types; set the RTC clock; search in RAM and flash. Works with internal SD card and IEC devices such as FNX1591 and Commodore 1541. Can be installed in primary flash position ahead of SuperBASIC or DOS, or at a higher location. Can also be run from disk with &amp;quot;- fm.pgz&amp;quot;.&lt;br /&gt;
|Micah&lt;br /&gt;
|pgZ/flash&lt;br /&gt;
|https://github.com/WartyMN/F256-FileManager/releases&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|f256_reset&lt;br /&gt;
|A small utility that lets you reset the machine through this piece of flash software&lt;br /&gt;
|mgr42&lt;br /&gt;
|flash&lt;br /&gt;
|https://github.com/rmsk2/f256_reset&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|fcart&lt;br /&gt;
|A program that allows to write data to flash expansion cartridges &lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz, on-board and cartridge flash&lt;br /&gt;
|https://github.com/rmsk2/cartflash&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|flashcart&lt;br /&gt;
|Allows to wipe a block of flash or write a program to a flash cart, from this basic program from the F256Jr/K&lt;br /&gt;
|redfool.&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Red-Fool/F256_FlashCart/tree/main&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|flashselect&lt;br /&gt;
|Allows to select a program to start from a flash cartridge via a menu&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz, on-board and cartridge flash&lt;br /&gt;
|https://github.com/rmsk2/flashselect&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|fonts&lt;br /&gt;
|A variety of fonts using the standard F256 character set arrangement. Load with the F256 file manager (f/manager), or your own code.&lt;br /&gt;
|Micah&lt;br /&gt;
|(not a program)&lt;br /&gt;
|[https://github.com/WartyMN/Foenix-Fonts/tree/main https://github.com/WartyMN/Foenix-Fonts]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|midiStuff&lt;br /&gt;
|Test program for a F256K2 or F256Jr2 that sends MIDI data to the internal sam2695 dream chip that produces MIDI based audio. Also test a keyboard controller plugged in the MIDI in port.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles/blob/main/README.md#midistuff&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|moreorless&lt;br /&gt;
|A text editor for the Foenix 256 line of computers&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/moreorless/releases/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pgz2flash&lt;br /&gt;
|A program for your Linux, Windows or MacOS machine to turn any PGZ or SuperBASIC program into a KUP which can be run from cartridge or onboard flash memory&lt;br /&gt;
|mgr42&lt;br /&gt;
|Executable for modern computers&lt;br /&gt;
|https://github.com/rmsk2/pgz2flash&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|sidTester&lt;br /&gt;
|Simple superbasic program that tests out all 3 voices of the SID1 on the Jr (if populated), K, Jr2 and K2. Ported by Mu0n, made by andy on HackJunk.com https://hackjunk.com/2017/11/07/commodore-64-sid-tester/&lt;br /&gt;
|andy&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/blob/main/apps/sidtester.bas&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|testsuite.bas&lt;br /&gt;
|a series of tests for your F256, video modes and sound chips&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|run from the root, &lt;br /&gt;
https://github.com/econtrerasd/testSuite-F256/releases&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|wget&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|&amp;lt;nowiki/&amp;gt;fetches a file from a http address if you have a network connection active. Works with the K and Jr. ESP32 Feather &#039;huzzah&#039; board. Not meant to be used with the K2 and Jr2 Wiznet chip.&lt;br /&gt;
|gadget&lt;br /&gt;
|&amp;lt;nowiki/&amp;gt;pgz/flash&lt;br /&gt;
|https://github.com/ghackwrench/F256_wget&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sample Code ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Assembly examples&lt;br /&gt;
|Sample programs for several features of the Foenix F256K and Jr.&lt;br /&gt;
|mgr42&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/rmsk2/Hello_Foenix256_Jr/blob/main/testprogs.md&lt;br /&gt;
|-&lt;br /&gt;
|cc65 example&lt;br /&gt;
|c example code&lt;br /&gt;
|gadget&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/ghackwrench/F256_Jr_Kernel_DOS&lt;br /&gt;
|-&lt;br /&gt;
|digarok basic stuff&lt;br /&gt;
|Lots of basic examples&lt;br /&gt;
|digarok&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/digarok/superbasic-traveler/tree/main&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K asm doodles&lt;br /&gt;
|Some asm examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleASMdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K basic doodles&lt;br /&gt;
|Some basic examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K C doodles&lt;br /&gt;
|Some C examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Raúl SQ basic repo&lt;br /&gt;
|F256 SuperBASIC Trigonometry&lt;br /&gt;
|Raúl SQ&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/raul-sq/FoenixF256K2&lt;br /&gt;
|-&lt;br /&gt;
|tcp example&lt;br /&gt;
|connects to a server and gets typed in text echoed back to you&lt;br /&gt;
|gadget&lt;br /&gt;
|$2000&lt;br /&gt;
|https://github.com/ghackwrench/F256_example_tcp&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_6502&amp;diff=38375</id>
		<title>Software for 6502</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_6502&amp;diff=38375"/>
		<updated>2026-01-07T18:07:46Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Music */ v1.1 for opl3snooper in desc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note that when an hex address is given, it&#039;s meant to instruct as to which address to bload or to send (ie foenixmgr python script) the program (ie a .bin file) to before running it. For extra help on how to run .bin files and almost every possible scheme that has to be used to run program, you can consult this video that&#039;s also part of [[Getting Started]], this one: https://www.youtube.com/watch?v=0ShFv89KGDs&lt;br /&gt;
&lt;br /&gt;
Many download links are posts in the main [https://discord.gg/9vjUEGgcUS Foenix Retro Systems discord server] which will require you to join in order to get to them.&lt;br /&gt;
&lt;br /&gt;
A [[Getting Started#Demos Archive|Demo Archive]] was put together in September 2023 to get ready to show to youtubers, some of these are linked once more, in this page.   &lt;br /&gt;
&lt;br /&gt;
There&#039;s also the Foenix Marketplace website maintained by EMWhite with its own collection of articles and software http://apps.emwhite.org/foenixmarketplace/.  &lt;br /&gt;
&lt;br /&gt;
===== Curated SD card collection of games, demos, utilities =====&lt;br /&gt;
Here is a download link to a zip file meant to be extracted into the root of an SD card: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
&lt;br /&gt;
Best to wipe out your SD card and start anew with the contents of this extracted to root. Micah&#039;s file manager doesn&#039;t like long lists of files so it really is best to not overdo it. I tried to minimize the files in root, but I couldn&#039;t for everything.&lt;br /&gt;
&lt;br /&gt;
Open the readme.txt file with moreorless to see some instructions about the collection. Best to run /- fm first, then open the readme.txt from it&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|F256 f/term&lt;br /&gt;
|Terminal emulator for F256K and Jr with classic (flat) memory load&lt;br /&gt;
|Micah&lt;br /&gt;
| - fterm.pgZ or use f/manager&lt;br /&gt;
|https://github.com/WartyMN/F256-terminal/blob/main/release/fterm.pgZ&lt;br /&gt;
|-&lt;br /&gt;
|FoenixTarot&lt;br /&gt;
|Tarot card readings in SuperBasic&lt;br /&gt;
|Mike&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/mcassera/FoenixTarot/tree/main&lt;br /&gt;
|-&lt;br /&gt;
|Forthf256&lt;br /&gt;
|Forth implementation&lt;br /&gt;
|Vasyl&lt;br /&gt;
|pgz in its forth/ folder&lt;br /&gt;
|https://github.com/VasylTsv/ForthX16&lt;br /&gt;
|-&lt;br /&gt;
|WildBits Graphic Toolkit&lt;br /&gt;
|(fmr. F256-GraphicToolkit) Sprite editor, Tilemap editor, Font editor + misc tools&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/econtrerasd/F256-GraphicToolkit/releases&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Demos ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|badapple&lt;br /&gt;
|A 80x60 textmode port of Bad Apple, uses the VS1053b for quality mp3 audio. Needs a Jr2 or K2!&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz*&lt;br /&gt;
|*unzip badapple.zip into the root of your SD card. If done right, the 3 files within will be in the demos/ folder. The program expects its data file there when it runs. https://github.com/Mu0n/F256MiscGoodies/blob/main/apps/badapple.zip&lt;br /&gt;
|-&lt;br /&gt;
|balls&lt;br /&gt;
|Draw a good quantity of multiplexed sprites, fast. Balls bouncing around&lt;br /&gt;
|celton&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/FoenixRetro/demos/blob/main/MultiplexedSprites.md&lt;br /&gt;
|-&lt;br /&gt;
|F256Archon&lt;br /&gt;
|Splash screen intro, plays MIDI using the SAM2695, requires a K2 or Jr2&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256Archon/releases&lt;br /&gt;
|-&lt;br /&gt;
|f256_life&lt;br /&gt;
|An implementation of Conway&#039;s game of life&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_life&lt;br /&gt;
|-&lt;br /&gt;
|F256 Mandelbrot&lt;br /&gt;
|Draws Mandelbrot set fast (5 mins) using coprocessor math. Allows to zoom into the set.&lt;br /&gt;
|mgr42&lt;br /&gt;
|uses basic loader&lt;br /&gt;
|https://github.com/rmsk2/F256_Mandelbrot&lt;br /&gt;
|-&lt;br /&gt;
|F256ShowCase&lt;br /&gt;
|Shows sliding tiling graphics, moves with joystick&lt;br /&gt;
|eriktier&lt;br /&gt;
|$0000&lt;br /&gt;
|https://github.com/pig-games/F256Showcase&lt;br /&gt;
|-&lt;br /&gt;
|fnxmas23 &lt;br /&gt;
|PSG mod music, scrolling text, sound effects, must see demo!&lt;br /&gt;
|dwsJason and digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/apps/xmas24_k2.pgz revised version that can run on wave 2 Jr2 and K2 as well&lt;br /&gt;
|-&lt;br /&gt;
|foenixmas23&lt;br /&gt;
|Xmas 2023 demo with SID music from the classic 1983 C64 xmas demo&lt;br /&gt;
|EMWhite&lt;br /&gt;
|uses basic loader&lt;br /&gt;
|http://apps.emwhite.org/shared-files/815/?foenixmas23.zip&lt;br /&gt;
|-&lt;br /&gt;
|livingworlds&lt;br /&gt;
|Living Worlds, a port of a color cycling by Mark Ferrari, ported here on the F256 by haydenkale&lt;br /&gt;
|haydenkale&lt;br /&gt;
|$0000&lt;br /&gt;
|https://github.com/clandrew/livingworlds/tree/e4532e0d530b76ccb90368fdf5ad10bfa2deeb12&lt;br /&gt;
|-&lt;br /&gt;
|mandel&lt;br /&gt;
|Will draw a mandelbrot set in 3 hours, more useful as a stability test than a useful fractal program&lt;br /&gt;
|Mu0n&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles?tab=readme-ov-file#fractal&lt;br /&gt;
|-&lt;br /&gt;
|mariobros&lt;br /&gt;
|Tilemap and platformer test based on Mario Bros. (1983)&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/mariobros&lt;br /&gt;
|-&lt;br /&gt;
|wormhole&lt;br /&gt;
|Shows a fast wireframe animation of a wormhole&lt;br /&gt;
|haydenkale&lt;br /&gt;
|pgz or bin at $0000&lt;br /&gt;
|https://github.com/clandrew/wormhole?tab=readme-ov-file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|bbombers&lt;br /&gt;
|Boulder Bombers (Alpha-2)  Clone of Canyon Bombers&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/BoulderBombers&amp;lt;nowiki/&amp;gt;https://github.com/scttgs0/BoulderBombers/releases/tag/alpha_2&lt;br /&gt;
|-&lt;br /&gt;
|Bombsweeper&lt;br /&gt;
|Bomb sweeper port&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/855689509520932885/1196352934083035156&lt;br /&gt;
|-&lt;br /&gt;
|Cosmic&lt;br /&gt;
|Shoot &#039;em up&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discordapp.com/channels/691915291721990194/1054250238308790342/1175982979537969214&lt;br /&gt;
|-&lt;br /&gt;
|F256-Trek&lt;br /&gt;
|Updated Trek, with modern F256 Graphics&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|[https://github.com/econtrerasd/Trek-F256/releases/tag/v1.0 https://github.com/econtrerasd/Trek-F256/releases]&lt;br /&gt;
|-&lt;br /&gt;
|F256 two to the power of eleven&lt;br /&gt;
|Port of the puzzle game of 2048&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/F256_2048&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|fillerup&lt;br /&gt;
|Fill &#039;er Up (WIP)&lt;br /&gt;
Qix-like game&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/Fill-er-up&lt;br /&gt;
|-&lt;br /&gt;
|FusionDrive&lt;br /&gt;
|An outrun type game that also plays a MIDI soundtrack&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|wip v0.2, can use a NES pad #1 to move around, or left/right arrow keys currently https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
|-&lt;br /&gt;
|jewelkeeper&lt;br /&gt;
|Sokoban port&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/apps/jewelkeeper.pgz&amp;lt;nowiki/&amp;gt;You can now specify a level file when loading the game &amp;lt;code&amp;gt;/- jewelkeeper.pgz &amp;lt;levels.txt&amp;gt;&amp;lt;/code&amp;gt;.  Find more levels at https://www.sourcecode.se/sokoban/levels.php.  Keep in mind the maximum level dimension is 20x15, anything larger will be ignored&lt;br /&gt;
|-&lt;br /&gt;
|Jr Wördl&lt;br /&gt;
|port of Wordle&lt;br /&gt;
|AgeAgeEye&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/ageageeye/Superbasic-F256Jr-examples&lt;br /&gt;
|-&lt;br /&gt;
|kartdemo&lt;br /&gt;
|Kart racing game&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225217654487253094/1228246780840513556&lt;br /&gt;
|-&lt;br /&gt;
|Lair of the Lich King&lt;br /&gt;
|Rogue like dungeon crawler. Demo has 3 levels; full has 25+&lt;br /&gt;
|Micah&lt;br /&gt;
| - lkdemo/lk.pgz&lt;br /&gt;
|[https://discord.com/channels/691915291721990194/1230670413361844244/1317256215566487593 1.0 Beta 19 Demo]&lt;br /&gt;
|-&lt;br /&gt;
|livewire&lt;br /&gt;
|Livewire (WIP)&lt;br /&gt;
Tempest-like game&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/Livewire&lt;br /&gt;
|-&lt;br /&gt;
|Maze-Munch&lt;br /&gt;
|Pac-Man clone&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/Maze-Munch&lt;br /&gt;
|-&lt;br /&gt;
|pdefense&lt;br /&gt;
|Planetary Defense (WIP)&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
mouse&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/PlanetaryDefense&lt;br /&gt;
|-&lt;br /&gt;
|Shanghai/Mahjongg&lt;br /&gt;
|A clone of Shanghai. Also known as Mahjongg&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz or KUP&lt;br /&gt;
mouse needed&lt;br /&gt;
|https://github.com/rmsk2/f256_mahjong&lt;br /&gt;
|-&lt;br /&gt;
|Ski-Jr&lt;br /&gt;
|Ski game downhill&lt;br /&gt;
|digarok&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/digarok/superbasic-traveler/blob/main/ski-jr.bas&lt;br /&gt;
|-&lt;br /&gt;
|Track &amp;amp; Field&lt;br /&gt;
|Olympic Game by Konami (WIP)&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick or keyboard&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tetris&lt;br /&gt;
|Good old 80&#039;s game&lt;br /&gt;
|Daniel Tremblay (Grenouye)&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick or keyboard&lt;br /&gt;
|https://github.com/dtremblay/c256-tetris/tree/f256k&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #01 - April 6th/7th 2024 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|15puzzle&lt;br /&gt;
|Number sort puzzle&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_15puzzle/releases&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Flight Simulator&lt;br /&gt;
|flying simulator&lt;br /&gt;
|sduensin&lt;br /&gt;
|pgz&lt;br /&gt;
|https://cdn.discordapp.com/attachments/1225481966200029286/1227764847819620454/shotel.pgz&lt;br /&gt;
|-&lt;br /&gt;
|frisbee&lt;br /&gt;
|Frisbee throw past sport game&lt;br /&gt;
|dwsJason&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dwsJason/f256/blob/develop/merlin32/frisbee/frisbee.pgz&lt;br /&gt;
|-&lt;br /&gt;
|Impasse&lt;br /&gt;
|Shoot &#039;em up&lt;br /&gt;
|digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225481966200029286/1227075699895046235&lt;br /&gt;
|-&lt;br /&gt;
|soccur&lt;br /&gt;
|mutliplayer game of soccer&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|executable:https://discord.com/channels/691915291721990194/1225481966200029286/1226808228948611184&lt;br /&gt;
source code:&lt;br /&gt;
https://discord.com/channels/691915291721990194/1225481966200029286/1226812472069980232&lt;br /&gt;
|-&lt;br /&gt;
|Trek&lt;br /&gt;
|port of classic Star Trek game&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225481966200029286/1226727849944289341&lt;br /&gt;
|-&lt;br /&gt;
|Typing Star&lt;br /&gt;
|typing reaction game&lt;br /&gt;
|haydenkale&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/clandrew/typestar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #02 - October 25th-November 1st 2024 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Bach&#039;s MIDI Hero&lt;br /&gt;
|Free MIDI/PSG play + note play tutorial&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
the MIDI feature requires a F256K2 or F256Jr2; a legacy PSG option also allows F256K and F256Jr to still hear it. Optionally uses a MIDI in controller plugged in.&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles/releases/download/v1.2/BachHero.pgz&lt;br /&gt;
|-&lt;br /&gt;
|f256_snake&lt;br /&gt;
|&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz. Use cursor keys, Atari joystick or SNES pad to play&lt;br /&gt;
|https://github.com/rmsk2/f256_snake&lt;br /&gt;
|-&lt;br /&gt;
|fnxsnake&lt;br /&gt;
|&lt;br /&gt;
|silk-neon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/ksiondag/fnxsnake&lt;br /&gt;
|-&lt;br /&gt;
|The Hallow&lt;br /&gt;
|&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/FoenixGameJamOct2024&lt;br /&gt;
|-&lt;br /&gt;
|Halloween Birthday&lt;br /&gt;
|&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/GameJam2024_F256K&lt;br /&gt;
|-&lt;br /&gt;
|Haunted Mansion&lt;br /&gt;
|&lt;br /&gt;
|digarok&lt;br /&gt;
|superbasic&lt;br /&gt;
|https://github.com/digarok/fnxgamejam-haunted-mansion&lt;br /&gt;
|-&lt;br /&gt;
|Kooyan&lt;br /&gt;
|&lt;br /&gt;
|Grenouye&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dtremblay/kooyan.git&lt;br /&gt;
|-&lt;br /&gt;
|Spooky Run&lt;br /&gt;
|&lt;br /&gt;
|dwsJason&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dwsJason/spooky&lt;br /&gt;
|-&lt;br /&gt;
|Trick or Treat&lt;br /&gt;
|&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/TrickOrTreat&lt;br /&gt;
|-&lt;br /&gt;
|Ultima III - Exodus&lt;br /&gt;
|port&lt;br /&gt;
|Minstrel Dragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/minstreldragon/F256_Ultima_3&lt;br /&gt;
|-&lt;br /&gt;
|Warlock&lt;br /&gt;
|remake of 68000 game&lt;br /&gt;
|xDraconian&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick&lt;br /&gt;
DOWN=change_level&lt;br /&gt;
UP=jump&lt;br /&gt;
UP-LEFT=leap&lt;br /&gt;
UP-RIGHT=leap&lt;br /&gt;
|https://github.com/scttgs0/Foenix_GameJam_Oct2024&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Game Jam #03 - April 18th-April 27th 2025 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Arcade Shanghai v1.2&lt;br /&gt;
|Shanghai clone&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic, keep the .bas program in root, the rest in the provided ashanghai/ folder&lt;br /&gt;
|https://github.com/econtrerasd/ashanghai/releases&lt;br /&gt;
|-&lt;br /&gt;
|Bawk Bawk Cluck Cluck&lt;br /&gt;
|Chicken themed platformer&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/FoenixGameJamApr2025&lt;br /&gt;
|-&lt;br /&gt;
|BitLadder&lt;br /&gt;
|Shoot &#039;Em Up&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz. For full sound compatibility, a Jr2 or K2 is needed. &lt;br /&gt;
Uses 4 sound chips! (PSG, SID, OPL3, MIDI)&lt;br /&gt;
|https://mu0n.itch.io/bitladder&lt;br /&gt;
|-&lt;br /&gt;
|F256_Commando&lt;br /&gt;
|Commando port&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/F256_Commando&lt;br /&gt;
|-&lt;br /&gt;
|F256_LodeRunner&lt;br /&gt;
|Lode Runner port&lt;br /&gt;
|Minstrel Dragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/minstreldragon/F256_Loderunner/releases&lt;br /&gt;
|-&lt;br /&gt;
|Mahjong&lt;br /&gt;
|Shangai clone&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_mahjong/releases&lt;br /&gt;
|-&lt;br /&gt;
|Quarth&lt;br /&gt;
|Block placement arcade game&lt;br /&gt;
|Grenouye&lt;br /&gt;
|pgz&lt;br /&gt;
|https://grenouye.itch.io/f256-quarth&lt;br /&gt;
|-&lt;br /&gt;
|Skee(ster)-Ball&lt;br /&gt;
|&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/skeeball256/tree/main&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #04 - November-December 2025 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Fallitaire&lt;br /&gt;
|A cozy fall-themed twist on Pyramid Solitaire, built for the Foenix F256K2 Game Jam!&lt;br /&gt;
|Programmer Vs World&lt;br /&gt;
|bas&lt;br /&gt;
|https://programmervsworld.itch.io/fallitaire&lt;br /&gt;
|-&lt;br /&gt;
|H.E.R.O.&lt;br /&gt;
|Port of the classic game H.E.R.O.&lt;br /&gt;
|Cibee&lt;br /&gt;
|pgz&lt;br /&gt;
|https://c1bee.itch.io/hero&lt;br /&gt;
|-&lt;br /&gt;
|Leaderboard&lt;br /&gt;
|Golf game&lt;br /&gt;
|xDraconian&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1424187774642290799/1456104940186501132&lt;br /&gt;
|-&lt;br /&gt;
|Pitfall&lt;br /&gt;
|Port of the classic Pitfall game from Activision&lt;br /&gt;
|MinstrelDragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://minstrel.itch.io/pitfall-foenix-f256x&lt;br /&gt;
|-&lt;br /&gt;
|Return of the Falcon&lt;br /&gt;
|&lt;br /&gt;
|Callisto&lt;br /&gt;
|TBD&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Swicheroo&lt;br /&gt;
|An Alternate Puzzle Game&lt;br /&gt;
|jbaker8935&lt;br /&gt;
|pgz&lt;br /&gt;
|https://jbaker8935.itch.io/switcheroo&lt;br /&gt;
|-&lt;br /&gt;
|Track Day&lt;br /&gt;
|v1.0 top down race game vs computer controlled opponents&lt;br /&gt;
|MikeC&lt;br /&gt;
|pgz&lt;br /&gt;
|https://mcassera.itch.io/track-day-racing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Music ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|cozyMIDI&lt;br /&gt;
|Plays a SMF with the SAM2695 or VS1053b &lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|cozyMIDI v2.4 can open and play type 0 and type 1 standard MIDI files (SMF)&lt;br /&gt;
needs a Jr2 or K2&lt;br /&gt;
with a 2x core at https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
run operation 1: just as itself, it will force you to pick a midi file in the &#039;midi/&#039; folder /- cozymidi&lt;br /&gt;
&lt;br /&gt;
run operation 2: in f/manager, if you put this as &amp;lt;code&amp;gt;midiplayer.pgz&amp;lt;/code&amp;gt;in the &#039;_apps/&#039; folder, f/manager will open midi file with it when you launch .mid files. &lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/cozymidi.pgz&lt;br /&gt;
|-&lt;br /&gt;
|digestMidi&lt;br /&gt;
|converts .mid to .dim&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|.mid files are slow to load, parse and prepare for a playback. This tool comes in to convert them into a .dim format that strips out unnecessary MIDI commands and sets it up for timer0 time delays. Works with type 0 and type 1 standard midi files. This tools does the conversion and lets you hear the result.&lt;br /&gt;
Find the latest version here: https://github.com/Mu0n/F256MiscGoodies/tree/main/apps&lt;br /&gt;
|-&lt;br /&gt;
|EdInHisLib&lt;br /&gt;
|SID+OPL3 simultaneously&lt;br /&gt;
|beethead, ported from xantax&lt;br /&gt;
|pgz&lt;br /&gt;
|F256 port: https://discordapp.com/channels/691915291721990194/1054249926521016392/1184413356598231120&lt;br /&gt;
original: &amp;lt;nowiki&amp;gt;https://csdb.dk/release/?id=170898&amp;lt;/nowiki&amp;gt;. Not 100% accurate but close.&lt;br /&gt;
|-&lt;br /&gt;
|F256amp&lt;br /&gt;
|mp3, ogg, wav, wma file playback&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|(aka audioplayer.pgz) v2.3 Needs a Jr.2 or K2 since it uses the VS1053b chip.&lt;br /&gt;
For a starter collection of .mp3 and other audio files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
run operation 1: just as itself, it will force you to pick an audio file. it expects a &amp;lt;code&amp;gt;media/mp3/&amp;lt;/code&amp;gt; folder, but it can live without it and peek into the root instead. &lt;br /&gt;
&lt;br /&gt;
run operation 2: with an argument, it will auto-play it: /- f256amp yourmp3file.mp3 &lt;br /&gt;
&lt;br /&gt;
run operation 3:  in f/manager, if you put this as &amp;lt;code&amp;gt;audioplayer.pgz&amp;lt;/code&amp;gt; in the &#039;_apps/&#039; folder. This lets f/manager automatically open up .mp3, .wav, .ogg, .wma that you press enter on.&lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/f256amp.pgz&lt;br /&gt;
|-&lt;br /&gt;
|FireJam&lt;br /&gt;
|all chips, music playing with MIDI in&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v1.2 MIDI in and out capable, it will still partially work with a Jr. (PSG, and SID if you have them), a K (PSG, SID, OPL3) and the newest wave 2 Jr2 and K2 (PSG, SID, OPL3, SAM, VS1053b).&lt;br /&gt;
Best to use with a MIDI in controller, but it&#039;ll be controllable with arrows and space to make notes individually, or the F keys to start beats. https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
|-&lt;br /&gt;
|jrtracker&lt;br /&gt;
|Tracker based in basic and uses the PSG&lt;br /&gt;
(considered obsolete, use tracker2)&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://ptb.discord.com/channels/691915291721990194/1008139105386889346/1188292876984143983&lt;br /&gt;
|-&lt;br /&gt;
|modo&lt;br /&gt;
|MOD player using the PSG&lt;br /&gt;
|dwsJason and digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discordapp.com/channels/691915291721990194/855689509520932885/1190723114661859429&lt;br /&gt;
|-&lt;br /&gt;
|Musik&lt;br /&gt;
|Music piece demo using MIDI&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/Musik/blob/main/Musik.PGZ&amp;lt;nowiki/&amp;gt;Musikalisches Würfelspiel&lt;br /&gt;
Requires a Jr2 or K2 since it uses MIDI&lt;br /&gt;
|-&lt;br /&gt;
|opl3snooper&lt;br /&gt;
|playback of VGM files (that use opl2 and opl3) and MIDI in&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v1.1 mainly plays back vgm files, but you can pause it and snoop around the channel instruments and play up to 18 note polyphony with MIDI in. expects a collection in media/vgm/, or it will browse from the root if it can&#039;t find.  &lt;br /&gt;
It can load a .spl (Simple PLaylist) text file, which is one file per line, including their respective paths. &lt;br /&gt;
Requires a Jr2 or K2 with a 2x core to use the extra bank of SRAM.&lt;br /&gt;
For a starter collection of .vgm files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
run operation 1: just as itself, it will force you to pick a midi file in the &#039;media/vgm/&#039; folder &lt;br /&gt;
&lt;br /&gt;
run operation 2: in f/manager (v1.1b9 and up), if you put this as &amp;lt;code&amp;gt;vgmplayer.pgz&amp;lt;/code&amp;gt;in the &#039;_apps/&#039; folder, f/manager will open midi file with it when you launch .vgm files. &lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/opl3snooper.pgz &lt;br /&gt;
|-&lt;br /&gt;
|opl3tweak&lt;br /&gt;
|uses MIDI in, plays 18 channels polyphony in real time to the YMF262 OPL3. Fish for random register values.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v0.1. Can&#039;t save or load instrument definitions yet. Needs a K2 with a MIDI in currently.  https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/opl3tweak.pgz&lt;br /&gt;
Arrows to move around, + and - keys to incr/decr values or type in a hex value directly under the highlighted position.&lt;br /&gt;
|-&lt;br /&gt;
|piano&lt;br /&gt;
|Plays some PSG notes with the keyboard&lt;br /&gt;
|Mu0n&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles?tab=readme-ov-file#pulse-sound-generator-piano&lt;br /&gt;
|-&lt;br /&gt;
|playvgm&lt;br /&gt;
|plays a headless vgm file with OPL3&lt;br /&gt;
|G33kyAndIKnowIt&lt;br /&gt;
|pgx&lt;br /&gt;
|https://github.com/natebarney/playvgm-f256k&lt;br /&gt;
some example music files can be gotten from this post:&lt;br /&gt;
[https://discord.com/channels/691915291721990194/975117322836656138/1220366429640065074 https://discord.com/channels/6][https://discord.com/channels/691915291721990194/975117322836656138/1220366429640065074 91915291721990194/975117322836656138/1220366429640065074]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) open a normal .vgm into a hex editor &amp;lt;nowiki/&amp;gt;and cut out the header bytes from 0x00 to 0x&amp;lt;nowiki/&amp;gt;FF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) run by first using superbasic&#039;s &#039;&#039;&#039;&#039;&#039;bload&#039;&#039;&#039;&#039;&#039; &#039;&#039;&#039;&#039;&#039;&amp;quot;yourmusicfile&amp;quot;, $01000&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
followed by running this program with &#039;&#039;&#039;&#039;&#039;/- playvgm.pgx&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|sidtweak&lt;br /&gt;
|uses MIDI in, plays 6 channels polyphony in real time to the dual SID. Fish for random register values.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v0.1. Can&#039;t save or load instrument definitions yet. Needs a K2 with a MIDI in currently. https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/sidtweak.pgz&lt;br /&gt;
Arrows to move around, + and - keys to incr/decr values or type in a hex value directly under the highlighted position.&lt;br /&gt;
|-&lt;br /&gt;
|rawsidplayer&lt;br /&gt;
|plays raw PSID files from the HVSC collection, converted by zigreSID&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|(formely psidplayer) v0.2 find rawsidplayer.pgz and a starter .rsd file (raw sid dumps). For a starter collection of .rsd files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection &lt;br /&gt;
extract sid.zip into a folder /sid/ in the root of your SD card, that&#039;s where psidplayer.pgz will first look to let you pick a file. failing that, it will fall back to the root folder and let you navigate.&lt;br /&gt;
&lt;br /&gt;
program link:&lt;br /&gt;
&lt;br /&gt;
https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/rawsidplayer.pgz&lt;br /&gt;
|-&lt;br /&gt;
|tracker2 v1.5&lt;br /&gt;
|Like jrtracker.bas, but using both PSGs&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/econtrerasd/Tracker2/releases&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Uti&amp;lt;nowiki/&amp;gt;lities ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Descrip&amp;lt;nowiki/&amp;gt;tion&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|basic2text&lt;br /&gt;
|A simple utility for translating Commodore BASIC (all variants) from its native tokenized file format to a text format that can be opened with SuperBASIC. Does not perform any code translation: all adaptation is up to you. &lt;br /&gt;
|Micah&lt;br /&gt;
|pgZ&lt;br /&gt;
|https://github.com/WartyMN/F256-BasText/releases/latest&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|dcopy&lt;br /&gt;
|A tool to copy files from one drive to another or to/from your PC via RS-232 and a nullmodem cable&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz/flash&lt;br /&gt;
|https://github.com/rmsk2/f256_dcopy&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|f/manager&lt;br /&gt;
|A general file utility, launcher, and memory viewing program. Dual-panel file/memory browsers; copy between disks,  between folders on same disk, and from memory to disk and vice versa; delete, rename, and duplicate files; view files as hex or text (with word-wrap); launch applications and known file types; set the RTC clock; search in RAM and flash. Works with internal SD card and IEC devices such as FNX1591 and Commodore 1541. Can be installed in primary flash position ahead of SuperBASIC or DOS, or at a higher location. Can also be run from disk with &amp;quot;- fm.pgz&amp;quot;.&lt;br /&gt;
|Micah&lt;br /&gt;
|pgZ/flash&lt;br /&gt;
|https://github.com/WartyMN/F256-FileManager/releases&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|f256_reset&lt;br /&gt;
|A small utility that lets you reset the machine through this piece of flash software&lt;br /&gt;
|mgr42&lt;br /&gt;
|flash&lt;br /&gt;
|https://github.com/rmsk2/f256_reset&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|fcart&lt;br /&gt;
|A program that allows to write data to flash expansion cartridges &lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz, on-board and cartridge flash&lt;br /&gt;
|https://github.com/rmsk2/cartflash&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|flashcart&lt;br /&gt;
|Allows to wipe a block of flash or write a program to a flash cart, from this basic program from the F256Jr/K&lt;br /&gt;
|redfool.&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Red-Fool/F256_FlashCart/tree/main&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|flashselect&lt;br /&gt;
|Allows to select a program to start from a flash cartridge via a menu&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz, on-board and cartridge flash&lt;br /&gt;
|https://github.com/rmsk2/flashselect&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|fonts&lt;br /&gt;
|A variety of fonts using the standard F256 character set arrangement. Load with the F256 file manager (f/manager), or your own code.&lt;br /&gt;
|Micah&lt;br /&gt;
|(not a program)&lt;br /&gt;
|[https://github.com/WartyMN/Foenix-Fonts/tree/main https://github.com/WartyMN/Foenix-Fonts]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|midiStuff&lt;br /&gt;
|Test program for a F256K2 or F256Jr2 that sends MIDI data to the internal sam2695 dream chip that produces MIDI based audio. Also test a keyboard controller plugged in the MIDI in port.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles/blob/main/README.md#midistuff&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|moreorless&lt;br /&gt;
|A text editor for the Foenix 256 line of computers&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/moreorless/releases/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pgz2flash&lt;br /&gt;
|A program for your Linux, Windows or MacOS machine to turn any PGZ or SuperBASIC program into a KUP which can be run from cartridge or onboard flash memory&lt;br /&gt;
|mgr42&lt;br /&gt;
|Executable for modern computers&lt;br /&gt;
|https://github.com/rmsk2/pgz2flash&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|sidTester&lt;br /&gt;
|Simple superbasic program that tests out all 3 voices of the SID1 on the Jr (if populated), K, Jr2 and K2. Ported by Mu0n, made by andy on HackJunk.com https://hackjunk.com/2017/11/07/commodore-64-sid-tester/&lt;br /&gt;
|andy&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/blob/main/apps/sidtester.bas&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|testsuite.bas&lt;br /&gt;
|a series of tests for your F256, video modes and sound chips&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|run from the root, &lt;br /&gt;
https://github.com/econtrerasd/testSuite-F256/releases&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|wget&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|&amp;lt;nowiki/&amp;gt;fetches a file from a http address if you have a network connection active. Works with the K and Jr. ESP32 Feather &#039;huzzah&#039; board. Not meant to be used with the K2 and Jr2 Wiznet chip.&lt;br /&gt;
|gadget&lt;br /&gt;
|&amp;lt;nowiki/&amp;gt;pgz/flash&lt;br /&gt;
|https://github.com/ghackwrench/F256_wget&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sample Code ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Assembly examples&lt;br /&gt;
|Sample programs for several features of the Foenix F256K and Jr.&lt;br /&gt;
|mgr42&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/rmsk2/Hello_Foenix256_Jr/blob/main/testprogs.md&lt;br /&gt;
|-&lt;br /&gt;
|cc65 example&lt;br /&gt;
|c example code&lt;br /&gt;
|gadget&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/ghackwrench/F256_Jr_Kernel_DOS&lt;br /&gt;
|-&lt;br /&gt;
|digarok basic stuff&lt;br /&gt;
|Lots of basic examples&lt;br /&gt;
|digarok&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/digarok/superbasic-traveler/tree/main&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K asm doodles&lt;br /&gt;
|Some asm examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleASMdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K basic doodles&lt;br /&gt;
|Some basic examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K C doodles&lt;br /&gt;
|Some C examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Raúl SQ basic repo&lt;br /&gt;
|F256 SuperBASIC Trigonometry&lt;br /&gt;
|Raúl SQ&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/raul-sq/FoenixF256K2&lt;br /&gt;
|-&lt;br /&gt;
|tcp example&lt;br /&gt;
|connects to a server and gets typed in text echoed back to you&lt;br /&gt;
|gadget&lt;br /&gt;
|$2000&lt;br /&gt;
|https://github.com/ghackwrench/F256_example_tcp&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_65816&amp;diff=38373</id>
		<title>Software for 65816</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_65816&amp;diff=38373"/>
		<updated>2026-01-06T05:10:10Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Demos */ better link to the spr128b demo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note that when an hex address is given, it&#039;s meant to instruct as to which address to bload or to send (ie foenixmgr python script) the program (ie a .bin file) to before running it.&lt;br /&gt;
&lt;br /&gt;
Many download links are posts in the main [https://discord.gg/9vjUEGgcUS Foenix Retro Systems discord server] which will require you to join in order to get to them.&lt;br /&gt;
&lt;br /&gt;
===== Curated SD card collection of games, demos, utilities =====&lt;br /&gt;
Will be provided when one is prepared&lt;br /&gt;
&lt;br /&gt;
===== Why is this empty? =====&lt;br /&gt;
There&#039;s not a lot of 16-bit applications done and people aren&#039;t pro-active at sharing github download links! PLEASE HELP!&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Demos ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|hwline2.bas&lt;br /&gt;
|Displays hardware accelerated lines (classic screen saver)&lt;br /&gt;
|Econtrerasd&lt;br /&gt;
|basic, needs 2x core&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/blob/main/apps/hwline2.bas&lt;br /&gt;
|-&lt;br /&gt;
|newlines.pgz&lt;br /&gt;
|Toggles between new hardware accelerated lines and old drawn lines&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz, needs 2x core&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/newlines.pgz&lt;br /&gt;
|-&lt;br /&gt;
|spr128b.pgz&lt;br /&gt;
|Displays all 128 sprites&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz, needs 2x core&lt;br /&gt;
|https://github.com/noyen1973/spr128-F256K2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Music ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Utilities ==&lt;br /&gt;
== Sample Code ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_6502&amp;diff=38355</id>
		<title>Software for 6502</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_6502&amp;diff=38355"/>
		<updated>2026-01-03T21:49:12Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: new game jam (4 entries) and demos/mariobros from beethead&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note that when an hex address is given, it&#039;s meant to instruct as to which address to bload or to send (ie foenixmgr python script) the program (ie a .bin file) to before running it. For extra help on how to run .bin files and almost every possible scheme that has to be used to run program, you can consult this video that&#039;s also part of [[Getting Started]], this one: https://www.youtube.com/watch?v=0ShFv89KGDs&lt;br /&gt;
&lt;br /&gt;
Many download links are posts in the main [https://discord.gg/9vjUEGgcUS Foenix Retro Systems discord server] which will require you to join in order to get to them.&lt;br /&gt;
&lt;br /&gt;
A [[Getting Started#Demos Archive|Demo Archive]] was put together in September 2023 to get ready to show to youtubers, some of these are linked once more, in this page.   &lt;br /&gt;
&lt;br /&gt;
There&#039;s also the Foenix Marketplace website maintained by EMWhite with its own collection of articles and software http://apps.emwhite.org/foenixmarketplace/.  &lt;br /&gt;
&lt;br /&gt;
===== Curated SD card collection of games, demos, utilities =====&lt;br /&gt;
Here is a download link to a zip file meant to be extracted into the root of an SD card: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
&lt;br /&gt;
Best to wipe out your SD card and start anew with the contents of this extracted to root. Micah&#039;s file manager doesn&#039;t like long lists of files so it really is best to not overdo it. I tried to minimize the files in root, but I couldn&#039;t for everything.&lt;br /&gt;
&lt;br /&gt;
Open the readme.txt file with moreorless to see some instructions about the collection. Best to run /- fm first, then open the readme.txt from it&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|F256 f/term&lt;br /&gt;
|Terminal emulator for F256K and Jr with classic (flat) memory load&lt;br /&gt;
|Micah&lt;br /&gt;
| - fterm.pgZ or use f/manager&lt;br /&gt;
|https://github.com/WartyMN/F256-terminal/blob/main/release/fterm.pgZ&lt;br /&gt;
|-&lt;br /&gt;
|FoenixTarot&lt;br /&gt;
|Tarot card readings in SuperBasic&lt;br /&gt;
|Mike&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/mcassera/FoenixTarot/tree/main&lt;br /&gt;
|-&lt;br /&gt;
|Forthf256&lt;br /&gt;
|Forth implementation&lt;br /&gt;
|Vasyl&lt;br /&gt;
|pgz in its forth/ folder&lt;br /&gt;
|https://github.com/VasylTsv/ForthX16&lt;br /&gt;
|-&lt;br /&gt;
|WildBits Graphic Toolkit&lt;br /&gt;
|(fmr. F256-GraphicToolkit) Sprite editor, Tilemap editor, Font editor + misc tools&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/econtrerasd/F256-GraphicToolkit/releases&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Demos ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|badapple&lt;br /&gt;
|A 80x60 textmode port of Bad Apple, uses the VS1053b for quality mp3 audio. Needs a Jr2 or K2!&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz*&lt;br /&gt;
|*unzip badapple.zip into the root of your SD card. If done right, the 3 files within will be in the demos/ folder. The program expects its data file there when it runs. https://github.com/Mu0n/F256MiscGoodies/blob/main/apps/badapple.zip&lt;br /&gt;
|-&lt;br /&gt;
|balls&lt;br /&gt;
|Draw a good quantity of multiplexed sprites, fast. Balls bouncing around&lt;br /&gt;
|celton&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/FoenixRetro/demos/blob/main/MultiplexedSprites.md&lt;br /&gt;
|-&lt;br /&gt;
|F256Archon&lt;br /&gt;
|Splash screen intro, plays MIDI using the SAM2695, requires a K2 or Jr2&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256Archon/releases&lt;br /&gt;
|-&lt;br /&gt;
|f256_life&lt;br /&gt;
|An implementation of Conway&#039;s game of life&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_life&lt;br /&gt;
|-&lt;br /&gt;
|F256 Mandelbrot&lt;br /&gt;
|Draws Mandelbrot set fast (5 mins) using coprocessor math. Allows to zoom into the set.&lt;br /&gt;
|mgr42&lt;br /&gt;
|uses basic loader&lt;br /&gt;
|https://github.com/rmsk2/F256_Mandelbrot&lt;br /&gt;
|-&lt;br /&gt;
|F256ShowCase&lt;br /&gt;
|Shows sliding tiling graphics, moves with joystick&lt;br /&gt;
|eriktier&lt;br /&gt;
|$0000&lt;br /&gt;
|https://github.com/pig-games/F256Showcase&lt;br /&gt;
|-&lt;br /&gt;
|fnxmas23 &lt;br /&gt;
|PSG mod music, scrolling text, sound effects, must see demo!&lt;br /&gt;
|dwsJason and digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/apps/xmas24_k2.pgz revised version that can run on wave 2 Jr2 and K2 as well&lt;br /&gt;
|-&lt;br /&gt;
|foenixmas23&lt;br /&gt;
|Xmas 2023 demo with SID music from the classic 1983 C64 xmas demo&lt;br /&gt;
|EMWhite&lt;br /&gt;
|uses basic loader&lt;br /&gt;
|http://apps.emwhite.org/shared-files/815/?foenixmas23.zip&lt;br /&gt;
|-&lt;br /&gt;
|livingworlds&lt;br /&gt;
|Living Worlds, a port of a color cycling by Mark Ferrari, ported here on the F256 by haydenkale&lt;br /&gt;
|haydenkale&lt;br /&gt;
|$0000&lt;br /&gt;
|https://github.com/clandrew/livingworlds/tree/e4532e0d530b76ccb90368fdf5ad10bfa2deeb12&lt;br /&gt;
|-&lt;br /&gt;
|mandel&lt;br /&gt;
|Will draw a mandelbrot set in 3 hours, more useful as a stability test than a useful fractal program&lt;br /&gt;
|Mu0n&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles?tab=readme-ov-file#fractal&lt;br /&gt;
|-&lt;br /&gt;
|mariobros&lt;br /&gt;
|Tilemap and platformer test based on Mario Bros. (1983)&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/mariobros&lt;br /&gt;
|-&lt;br /&gt;
|wormhole&lt;br /&gt;
|Shows a fast wireframe animation of a wormhole&lt;br /&gt;
|haydenkale&lt;br /&gt;
|pgz or bin at $0000&lt;br /&gt;
|https://github.com/clandrew/wormhole?tab=readme-ov-file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|bbombers&lt;br /&gt;
|Boulder Bombers (Alpha-2)  Clone of Canyon Bombers&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/BoulderBombers&amp;lt;nowiki/&amp;gt;https://github.com/scttgs0/BoulderBombers/releases/tag/alpha_2&lt;br /&gt;
|-&lt;br /&gt;
|Bombsweeper&lt;br /&gt;
|Bomb sweeper port&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/855689509520932885/1196352934083035156&lt;br /&gt;
|-&lt;br /&gt;
|Cosmic&lt;br /&gt;
|Shoot &#039;em up&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discordapp.com/channels/691915291721990194/1054250238308790342/1175982979537969214&lt;br /&gt;
|-&lt;br /&gt;
|F256-Trek&lt;br /&gt;
|Updated Trek, with modern F256 Graphics&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|[https://github.com/econtrerasd/Trek-F256/releases/tag/v1.0 https://github.com/econtrerasd/Trek-F256/releases]&lt;br /&gt;
|-&lt;br /&gt;
|F256 two to the power of eleven&lt;br /&gt;
|Port of the puzzle game of 2048&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/F256_2048&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|fillerup&lt;br /&gt;
|Fill &#039;er Up (WIP)&lt;br /&gt;
Qix-like game&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/Fill-er-up&lt;br /&gt;
|-&lt;br /&gt;
|FusionDrive&lt;br /&gt;
|An outrun type game that also plays a MIDI soundtrack&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|wip v0.2, can use a NES pad #1 to move around, or left/right arrow keys currently https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
|-&lt;br /&gt;
|jewelkeeper&lt;br /&gt;
|Sokoban port&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/apps/jewelkeeper.pgz&amp;lt;nowiki/&amp;gt;You can now specify a level file when loading the game &amp;lt;code&amp;gt;/- jewelkeeper.pgz &amp;lt;levels.txt&amp;gt;&amp;lt;/code&amp;gt;.  Find more levels at https://www.sourcecode.se/sokoban/levels.php.  Keep in mind the maximum level dimension is 20x15, anything larger will be ignored&lt;br /&gt;
|-&lt;br /&gt;
|Jr Wördl&lt;br /&gt;
|port of Wordle&lt;br /&gt;
|AgeAgeEye&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/ageageeye/Superbasic-F256Jr-examples&lt;br /&gt;
|-&lt;br /&gt;
|kartdemo&lt;br /&gt;
|Kart racing game&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225217654487253094/1228246780840513556&lt;br /&gt;
|-&lt;br /&gt;
|Lair of the Lich King&lt;br /&gt;
|Rogue like dungeon crawler. Demo has 3 levels; full has 25+&lt;br /&gt;
|Micah&lt;br /&gt;
| - lkdemo/lk.pgz&lt;br /&gt;
|[https://discord.com/channels/691915291721990194/1230670413361844244/1317256215566487593 1.0 Beta 19 Demo]&lt;br /&gt;
|-&lt;br /&gt;
|livewire&lt;br /&gt;
|Livewire (WIP)&lt;br /&gt;
Tempest-like game&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/Livewire&lt;br /&gt;
|-&lt;br /&gt;
|Maze-Munch&lt;br /&gt;
|Pac-Man clone&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/Maze-Munch&lt;br /&gt;
|-&lt;br /&gt;
|pdefense&lt;br /&gt;
|Planetary Defense (WIP)&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
mouse&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/PlanetaryDefense&lt;br /&gt;
|-&lt;br /&gt;
|Shanghai/Mahjongg&lt;br /&gt;
|A clone of Shanghai. Also known as Mahjongg&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz or KUP&lt;br /&gt;
mouse needed&lt;br /&gt;
|https://github.com/rmsk2/f256_mahjong&lt;br /&gt;
|-&lt;br /&gt;
|Ski-Jr&lt;br /&gt;
|Ski game downhill&lt;br /&gt;
|digarok&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/digarok/superbasic-traveler/blob/main/ski-jr.bas&lt;br /&gt;
|-&lt;br /&gt;
|Track &amp;amp; Field&lt;br /&gt;
|Olympic Game by Konami (WIP)&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick or keyboard&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tetris&lt;br /&gt;
|Good old 80&#039;s game&lt;br /&gt;
|Daniel Tremblay (Grenouye)&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick or keyboard&lt;br /&gt;
|https://github.com/dtremblay/c256-tetris/tree/f256k&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #01 - April 6th/7th 2024 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|15puzzle&lt;br /&gt;
|Number sort puzzle&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_15puzzle/releases&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Flight Simulator&lt;br /&gt;
|flying simulator&lt;br /&gt;
|sduensin&lt;br /&gt;
|pgz&lt;br /&gt;
|https://cdn.discordapp.com/attachments/1225481966200029286/1227764847819620454/shotel.pgz&lt;br /&gt;
|-&lt;br /&gt;
|frisbee&lt;br /&gt;
|Frisbee throw past sport game&lt;br /&gt;
|dwsJason&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dwsJason/f256/blob/develop/merlin32/frisbee/frisbee.pgz&lt;br /&gt;
|-&lt;br /&gt;
|Impasse&lt;br /&gt;
|Shoot &#039;em up&lt;br /&gt;
|digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225481966200029286/1227075699895046235&lt;br /&gt;
|-&lt;br /&gt;
|soccur&lt;br /&gt;
|mutliplayer game of soccer&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|executable:https://discord.com/channels/691915291721990194/1225481966200029286/1226808228948611184&lt;br /&gt;
source code:&lt;br /&gt;
https://discord.com/channels/691915291721990194/1225481966200029286/1226812472069980232&lt;br /&gt;
|-&lt;br /&gt;
|Trek&lt;br /&gt;
|port of classic Star Trek game&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225481966200029286/1226727849944289341&lt;br /&gt;
|-&lt;br /&gt;
|Typing Star&lt;br /&gt;
|typing reaction game&lt;br /&gt;
|haydenkale&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/clandrew/typestar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #02 - October 25th-November 1st 2024 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Bach&#039;s MIDI Hero&lt;br /&gt;
|Free MIDI/PSG play + note play tutorial&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
the MIDI feature requires a F256K2 or F256Jr2; a legacy PSG option also allows F256K and F256Jr to still hear it. Optionally uses a MIDI in controller plugged in.&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles/releases/download/v1.2/BachHero.pgz&lt;br /&gt;
|-&lt;br /&gt;
|f256_snake&lt;br /&gt;
|&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz. Use cursor keys, Atari joystick or SNES pad to play&lt;br /&gt;
|https://github.com/rmsk2/f256_snake&lt;br /&gt;
|-&lt;br /&gt;
|fnxsnake&lt;br /&gt;
|&lt;br /&gt;
|silk-neon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/ksiondag/fnxsnake&lt;br /&gt;
|-&lt;br /&gt;
|The Hallow&lt;br /&gt;
|&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/FoenixGameJamOct2024&lt;br /&gt;
|-&lt;br /&gt;
|Halloween Birthday&lt;br /&gt;
|&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/GameJam2024_F256K&lt;br /&gt;
|-&lt;br /&gt;
|Haunted Mansion&lt;br /&gt;
|&lt;br /&gt;
|digarok&lt;br /&gt;
|superbasic&lt;br /&gt;
|https://github.com/digarok/fnxgamejam-haunted-mansion&lt;br /&gt;
|-&lt;br /&gt;
|Kooyan&lt;br /&gt;
|&lt;br /&gt;
|Grenouye&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dtremblay/kooyan.git&lt;br /&gt;
|-&lt;br /&gt;
|Spooky Run&lt;br /&gt;
|&lt;br /&gt;
|dwsJason&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dwsJason/spooky&lt;br /&gt;
|-&lt;br /&gt;
|Trick or Treat&lt;br /&gt;
|&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/TrickOrTreat&lt;br /&gt;
|-&lt;br /&gt;
|Ultima III - Exodus&lt;br /&gt;
|port&lt;br /&gt;
|Minstrel Dragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/minstreldragon/F256_Ultima_3&lt;br /&gt;
|-&lt;br /&gt;
|Warlock&lt;br /&gt;
|remake of 68000 game&lt;br /&gt;
|xDraconian&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick&lt;br /&gt;
DOWN=change_level&lt;br /&gt;
UP=jump&lt;br /&gt;
UP-LEFT=leap&lt;br /&gt;
UP-RIGHT=leap&lt;br /&gt;
|https://github.com/scttgs0/Foenix_GameJam_Oct2024&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Game Jam #03 - April 18th-April 27th 2025 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Arcade Shanghai v1.2&lt;br /&gt;
|Shanghai clone&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic, keep the .bas program in root, the rest in the provided ashanghai/ folder&lt;br /&gt;
|https://github.com/econtrerasd/ashanghai/releases&lt;br /&gt;
|-&lt;br /&gt;
|Bawk Bawk Cluck Cluck&lt;br /&gt;
|Chicken themed platformer&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/FoenixGameJamApr2025&lt;br /&gt;
|-&lt;br /&gt;
|BitLadder&lt;br /&gt;
|Shoot &#039;Em Up&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz. For full sound compatibility, a Jr2 or K2 is needed. &lt;br /&gt;
Uses 4 sound chips! (PSG, SID, OPL3, MIDI)&lt;br /&gt;
|https://mu0n.itch.io/bitladder&lt;br /&gt;
|-&lt;br /&gt;
|F256_Commando&lt;br /&gt;
|Commando port&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/F256_Commando&lt;br /&gt;
|-&lt;br /&gt;
|F256_LodeRunner&lt;br /&gt;
|Lode Runner port&lt;br /&gt;
|Minstrel Dragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/minstreldragon/F256_Loderunner/releases&lt;br /&gt;
|-&lt;br /&gt;
|Mahjong&lt;br /&gt;
|Shangai clone&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_mahjong/releases&lt;br /&gt;
|-&lt;br /&gt;
|Quarth&lt;br /&gt;
|Block placement arcade game&lt;br /&gt;
|Grenouye&lt;br /&gt;
|pgz&lt;br /&gt;
|https://grenouye.itch.io/f256-quarth&lt;br /&gt;
|-&lt;br /&gt;
|Skee(ster)-Ball&lt;br /&gt;
|&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/skeeball256/tree/main&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #04 - November-December 2025 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|H.E.R.O.&lt;br /&gt;
|Port of the classic game H.E.R.O.&lt;br /&gt;
|Cibee&lt;br /&gt;
|pgz&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Leaderboard&lt;br /&gt;
|Golf game&lt;br /&gt;
|xDraconian&lt;br /&gt;
|pgz&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Pitfall&lt;br /&gt;
|Port of the classic Pitfall game from Activision&lt;br /&gt;
|MinstrelDragon&lt;br /&gt;
|pgz&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Track Day&lt;br /&gt;
|v1.0 top down race game vs computer controlled opponents&lt;br /&gt;
|MikeC&lt;br /&gt;
|pgz&lt;br /&gt;
|https://mcassera.itch.io/track-day-racing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Music ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|cozyMIDI&lt;br /&gt;
|Plays a SMF with the SAM2695 or VS1053b &lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|cozyMIDI v2.4 can open and play type 0 and type 1 standard MIDI files (SMF)&lt;br /&gt;
needs a Jr2 or K2&lt;br /&gt;
with a 2x core at https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
run operation 1: just as itself, it will force you to pick a midi file in the &#039;midi/&#039; folder /- cozymidi&lt;br /&gt;
&lt;br /&gt;
run operation 2: in f/manager, if you put this as &amp;lt;code&amp;gt;midiplayer.pgz&amp;lt;/code&amp;gt;in the &#039;_apps/&#039; folder, f/manager will open midi file with it when you launch .mid files. &lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/cozymidi.pgz&lt;br /&gt;
|-&lt;br /&gt;
|digestMidi&lt;br /&gt;
|converts .mid to .dim&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|.mid files are slow to load, parse and prepare for a playback. This tool comes in to convert them into a .dim format that strips out unnecessary MIDI commands and sets it up for timer0 time delays. Works with type 0 and type 1 standard midi files. This tools does the conversion and lets you hear the result.&lt;br /&gt;
Find the latest version here: https://github.com/Mu0n/F256MiscGoodies/tree/main/apps&lt;br /&gt;
|-&lt;br /&gt;
|EdInHisLib&lt;br /&gt;
|SID+OPL3 simultaneously&lt;br /&gt;
|beethead, ported from xantax&lt;br /&gt;
|pgz&lt;br /&gt;
|F256 port: https://discordapp.com/channels/691915291721990194/1054249926521016392/1184413356598231120&lt;br /&gt;
original: &amp;lt;nowiki&amp;gt;https://csdb.dk/release/?id=170898&amp;lt;/nowiki&amp;gt;. Not 100% accurate but close.&lt;br /&gt;
|-&lt;br /&gt;
|F256amp&lt;br /&gt;
|mp3, ogg, wav, wma file playback&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|(aka audioplayer.pgz) v2.3 Needs a Jr.2 or K2 since it uses the VS1053b chip.&lt;br /&gt;
For a starter collection of .mp3 and other audio files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
run operation 1: just as itself, it will force you to pick an audio file. it expects a &amp;lt;code&amp;gt;media/mp3/&amp;lt;/code&amp;gt; folder, but it can live without it and peek into the root instead. &lt;br /&gt;
&lt;br /&gt;
run operation 2: with an argument, it will auto-play it: /- f256amp yourmp3file.mp3 &lt;br /&gt;
&lt;br /&gt;
run operation 3:  in f/manager, if you put this as &amp;lt;code&amp;gt;audioplayer.pgz&amp;lt;/code&amp;gt; in the &#039;_apps/&#039; folder. This lets f/manager automatically open up .mp3, .wav, .ogg, .wma that you press enter on.&lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/f256amp.pgz&lt;br /&gt;
|-&lt;br /&gt;
|FireJam&lt;br /&gt;
|all chips, music playing with MIDI in&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v1.2 MIDI in and out capable, it will still partially work with a Jr. (PSG, and SID if you have them), a K (PSG, SID, OPL3) and the newest wave 2 Jr2 and K2 (PSG, SID, OPL3, SAM, VS1053b).&lt;br /&gt;
Best to use with a MIDI in controller, but it&#039;ll be controllable with arrows and space to make notes individually, or the F keys to start beats. https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
|-&lt;br /&gt;
|jrtracker&lt;br /&gt;
|Tracker based in basic and uses the PSG&lt;br /&gt;
(considered obsolete, use tracker2)&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://ptb.discord.com/channels/691915291721990194/1008139105386889346/1188292876984143983&lt;br /&gt;
|-&lt;br /&gt;
|modo&lt;br /&gt;
|MOD player using the PSG&lt;br /&gt;
|dwsJason and digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discordapp.com/channels/691915291721990194/855689509520932885/1190723114661859429&lt;br /&gt;
|-&lt;br /&gt;
|Musik&lt;br /&gt;
|Music piece demo using MIDI&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/Musik/blob/main/Musik.PGZ&amp;lt;nowiki/&amp;gt;Musikalisches Würfelspiel&lt;br /&gt;
Requires a Jr2 or K2 since it uses MIDI&lt;br /&gt;
|-&lt;br /&gt;
|opl3snooper&lt;br /&gt;
|playback of VGM files (that use opl2 and opl3) and MIDI in&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v1.0  mainly plays back vgm files, but you can pause it and snoop around the channel instruments and play up to 18 note polyphony with MIDI in. expects a collection in media/vgm/, or it will browse from the root if it can&#039;t find.  &lt;br /&gt;
It can load a .spl (Simple PLaylist) text file, which is one file per line, including their respective paths. &lt;br /&gt;
Requires a Jr2 or K2 with a 2x core to use the extra bank of SRAM.&lt;br /&gt;
For a starter collection of .vgm files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
run operation 1: just as itself, it will force you to pick a midi file in the &#039;media/vgm/&#039; folder &lt;br /&gt;
&lt;br /&gt;
run operation 2: in f/manager (v1.1b9 and up), if you put this as &amp;lt;code&amp;gt;vgmplayer.pgz&amp;lt;/code&amp;gt;in the &#039;_apps/&#039; folder, f/manager will open midi file with it when you launch .vgm files. &lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/opl3snooper.pgz &lt;br /&gt;
|-&lt;br /&gt;
|opl3tweak&lt;br /&gt;
|uses MIDI in, plays 18 channels polyphony in real time to the YMF262 OPL3. Fish for random register values.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v0.1. Can&#039;t save or load instrument definitions yet. Needs a K2 with a MIDI in currently.  https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/opl3tweak.pgz&lt;br /&gt;
Arrows to move around, + and - keys to incr/decr values or type in a hex value directly under the highlighted position.&lt;br /&gt;
|-&lt;br /&gt;
|piano&lt;br /&gt;
|Plays some PSG notes with the keyboard&lt;br /&gt;
|Mu0n&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles?tab=readme-ov-file#pulse-sound-generator-piano&lt;br /&gt;
|-&lt;br /&gt;
|playvgm&lt;br /&gt;
|plays a headless vgm file with OPL3&lt;br /&gt;
|G33kyAndIKnowIt&lt;br /&gt;
|pgx&lt;br /&gt;
|https://github.com/natebarney/playvgm-f256k&lt;br /&gt;
some example music files can be gotten from this post:&lt;br /&gt;
[https://discord.com/channels/691915291721990194/975117322836656138/1220366429640065074 https://discord.com/channels/6][https://discord.com/channels/691915291721990194/975117322836656138/1220366429640065074 91915291721990194/975117322836656138/1220366429640065074]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) open a normal .vgm into a hex editor &amp;lt;nowiki/&amp;gt;and cut out the header bytes from 0x00 to 0x&amp;lt;nowiki/&amp;gt;FF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) run by first using superbasic&#039;s &#039;&#039;&#039;&#039;&#039;bload&#039;&#039;&#039;&#039;&#039; &#039;&#039;&#039;&#039;&#039;&amp;quot;yourmusicfile&amp;quot;, $01000&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
followed by running this program with &#039;&#039;&#039;&#039;&#039;/- playvgm.pgx&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|sidtweak&lt;br /&gt;
|uses MIDI in, plays 6 channels polyphony in real time to the dual SID. Fish for random register values.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v0.1. Can&#039;t save or load instrument definitions yet. Needs a K2 with a MIDI in currently. https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/sidtweak.pgz&lt;br /&gt;
Arrows to move around, + and - keys to incr/decr values or type in a hex value directly under the highlighted position.&lt;br /&gt;
|-&lt;br /&gt;
|rawsidplayer&lt;br /&gt;
|plays raw PSID files from the HVSC collection, converted by zigreSID&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|(formely psidplayer) v0.2 find rawsidplayer.pgz and a starter .rsd file (raw sid dumps). For a starter collection of .rsd files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection &lt;br /&gt;
extract sid.zip into a folder /sid/ in the root of your SD card, that&#039;s where psidplayer.pgz will first look to let you pick a file. failing that, it will fall back to the root folder and let you navigate.&lt;br /&gt;
&lt;br /&gt;
program link:&lt;br /&gt;
&lt;br /&gt;
https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/rawsidplayer.pgz&lt;br /&gt;
|-&lt;br /&gt;
|tracker2 v1.5&lt;br /&gt;
|Like jrtracker.bas, but using both PSGs&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/econtrerasd/Tracker2/releases&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Uti&amp;lt;nowiki/&amp;gt;lities ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Descrip&amp;lt;nowiki/&amp;gt;tion&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|basic2text&lt;br /&gt;
|A simple utility for translating Commodore BASIC (all variants) from its native tokenized file format to a text format that can be opened with SuperBASIC. Does not perform any code translation: all adaptation is up to you. &lt;br /&gt;
|Micah&lt;br /&gt;
|pgZ&lt;br /&gt;
|https://github.com/WartyMN/F256-BasText/releases/latest&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|dcopy&lt;br /&gt;
|A tool to copy files from one drive to another or to/from your PC via RS-232 and a nullmodem cable&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz/flash&lt;br /&gt;
|https://github.com/rmsk2/f256_dcopy&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|f/manager&lt;br /&gt;
|A general file utility, launcher, and memory viewing program. Dual-panel file/memory browsers; copy between disks,  between folders on same disk, and from memory to disk and vice versa; delete, rename, and duplicate files; view files as hex or text (with word-wrap); launch applications and known file types; set the RTC clock; search in RAM and flash. Works with internal SD card and IEC devices such as FNX1591 and Commodore 1541. Can be installed in primary flash position ahead of SuperBASIC or DOS, or at a higher location. Can also be run from disk with &amp;quot;- fm.pgz&amp;quot;.&lt;br /&gt;
|Micah&lt;br /&gt;
|pgZ/flash&lt;br /&gt;
|https://github.com/WartyMN/F256-FileManager/releases&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|f256_reset&lt;br /&gt;
|A small utility that lets you reset the machine through this piece of flash software&lt;br /&gt;
|mgr42&lt;br /&gt;
|flash&lt;br /&gt;
|https://github.com/rmsk2/f256_reset&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|fcart&lt;br /&gt;
|A program that allows to write data to flash expansion cartridges &lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz, on-board and cartridge flash&lt;br /&gt;
|https://github.com/rmsk2/cartflash&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|flashcart&lt;br /&gt;
|Allows to wipe a block of flash or write a program to a flash cart, from this basic program from the F256Jr/K&lt;br /&gt;
|redfool.&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Red-Fool/F256_FlashCart/tree/main&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|flashselect&lt;br /&gt;
|Allows to select a program to start from a flash cartridge via a menu&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz, on-board and cartridge flash&lt;br /&gt;
|https://github.com/rmsk2/flashselect&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|fonts&lt;br /&gt;
|A variety of fonts using the standard F256 character set arrangement. Load with the F256 file manager (f/manager), or your own code.&lt;br /&gt;
|Micah&lt;br /&gt;
|(not a program)&lt;br /&gt;
|[https://github.com/WartyMN/Foenix-Fonts/tree/main https://github.com/WartyMN/Foenix-Fonts]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|midiStuff&lt;br /&gt;
|Test program for a F256K2 or F256Jr2 that sends MIDI data to the internal sam2695 dream chip that produces MIDI based audio. Also test a keyboard controller plugged in the MIDI in port.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles/blob/main/README.md#midistuff&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|moreorless&lt;br /&gt;
|A text editor for the Foenix 256 line of computers&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/moreorless/releases/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pgz2flash&lt;br /&gt;
|A program for your Linux, Windows or MacOS machine to turn any PGZ or SuperBASIC program into a KUP which can be run from cartridge or onboard flash memory&lt;br /&gt;
|mgr42&lt;br /&gt;
|Executable for modern computers&lt;br /&gt;
|https://github.com/rmsk2/pgz2flash&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|sidTester&lt;br /&gt;
|Simple superbasic program that tests out all 3 voices of the SID1 on the Jr (if populated), K, Jr2 and K2. Ported by Mu0n, made by andy on HackJunk.com https://hackjunk.com/2017/11/07/commodore-64-sid-tester/&lt;br /&gt;
|andy&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/blob/main/apps/sidtester.bas&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|testsuite.bas&lt;br /&gt;
|a series of tests for your F256, video modes and sound chips&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|run from the root, https://raw.githubusercontent.com/Mu0n/F256MiscGoodies/refs/heads/main/apps/testsuite.bas&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|wget&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|&amp;lt;nowiki/&amp;gt;fetches a file from a http address if you have a network connection active. Works with the K and Jr. ESP32 Feather &#039;huzzah&#039; board. Not meant to be used with the K2 and Jr2 Wiznet chip.&lt;br /&gt;
|gadget&lt;br /&gt;
|&amp;lt;nowiki/&amp;gt;pgz/flash&lt;br /&gt;
|https://github.com/ghackwrench/F256_wget&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sample Code ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Assembly examples&lt;br /&gt;
|Sample programs for several features of the Foenix F256K and Jr.&lt;br /&gt;
|mgr42&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/rmsk2/Hello_Foenix256_Jr/blob/main/testprogs.md&lt;br /&gt;
|-&lt;br /&gt;
|cc65 example&lt;br /&gt;
|c example code&lt;br /&gt;
|gadget&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/ghackwrench/F256_Jr_Kernel_DOS&lt;br /&gt;
|-&lt;br /&gt;
|digarok basic stuff&lt;br /&gt;
|Lots of basic examples&lt;br /&gt;
|digarok&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/digarok/superbasic-traveler/tree/main&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K asm doodles&lt;br /&gt;
|Some asm examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleASMdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K basic doodles&lt;br /&gt;
|Some basic examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K C doodles&lt;br /&gt;
|Some C examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Raúl SQ basic repo&lt;br /&gt;
|F256 SuperBASIC Trigonometry&lt;br /&gt;
|Raúl SQ&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/raul-sq/FoenixF256K2&lt;br /&gt;
|-&lt;br /&gt;
|tcp example&lt;br /&gt;
|connects to a server and gets typed in text echoed back to you&lt;br /&gt;
|gadget&lt;br /&gt;
|$2000&lt;br /&gt;
|https://github.com/ghackwrench/F256_example_tcp&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_6502&amp;diff=38354</id>
		<title>Software for 6502</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_6502&amp;diff=38354"/>
		<updated>2026-01-03T19:39:30Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Applications */ WildBits Graphic Toolkit rebrand&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note that when an hex address is given, it&#039;s meant to instruct as to which address to bload or to send (ie foenixmgr python script) the program (ie a .bin file) to before running it. For extra help on how to run .bin files and almost every possible scheme that has to be used to run program, you can consult this video that&#039;s also part of [[Getting Started]], this one: https://www.youtube.com/watch?v=0ShFv89KGDs&lt;br /&gt;
&lt;br /&gt;
Many download links are posts in the main [https://discord.gg/9vjUEGgcUS Foenix Retro Systems discord server] which will require you to join in order to get to them.&lt;br /&gt;
&lt;br /&gt;
A [[Getting Started#Demos Archive|Demo Archive]] was put together in September 2023 to get ready to show to youtubers, some of these are linked once more, in this page.   &lt;br /&gt;
&lt;br /&gt;
There&#039;s also the Foenix Marketplace website maintained by EMWhite with its own collection of articles and software http://apps.emwhite.org/foenixmarketplace/.  &lt;br /&gt;
&lt;br /&gt;
===== Curated SD card collection of games, demos, utilities =====&lt;br /&gt;
Here is a download link to a zip file meant to be extracted into the root of an SD card: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
&lt;br /&gt;
Best to wipe out your SD card and start anew with the contents of this extracted to root. Micah&#039;s file manager doesn&#039;t like long lists of files so it really is best to not overdo it. I tried to minimize the files in root, but I couldn&#039;t for everything.&lt;br /&gt;
&lt;br /&gt;
Open the readme.txt file with moreorless to see some instructions about the collection. Best to run /- fm first, then open the readme.txt from it&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|F256 f/term&lt;br /&gt;
|Terminal emulator for F256K and Jr with classic (flat) memory load&lt;br /&gt;
|Micah&lt;br /&gt;
| - fterm.pgZ or use f/manager&lt;br /&gt;
|https://github.com/WartyMN/F256-terminal/blob/main/release/fterm.pgZ&lt;br /&gt;
|-&lt;br /&gt;
|FoenixTarot&lt;br /&gt;
|Tarot card readings in SuperBasic&lt;br /&gt;
|Mike&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/mcassera/FoenixTarot/tree/main&lt;br /&gt;
|-&lt;br /&gt;
|Forthf256&lt;br /&gt;
|Forth implementation&lt;br /&gt;
|Vasyl&lt;br /&gt;
|pgz in its forth/ folder&lt;br /&gt;
|https://github.com/VasylTsv/ForthX16&lt;br /&gt;
|-&lt;br /&gt;
|WildBits Graphic Toolkit&lt;br /&gt;
|(fmr. F256-GraphicToolkit) Sprite editor, Tilemap editor, Font editor + misc tools&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/econtrerasd/F256-GraphicToolkit/releases&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Demos ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|badapple&lt;br /&gt;
|A 80x60 textmode port of Bad Apple, uses the VS1053b for quality mp3 audio. Needs a Jr2 or K2!&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz*&lt;br /&gt;
|*unzip badapple.zip into the root of your SD card. If done right, the 3 files within will be in the demos/ folder. The program expects its data file there when it runs. https://github.com/Mu0n/F256MiscGoodies/blob/main/apps/badapple.zip&lt;br /&gt;
|-&lt;br /&gt;
|balls&lt;br /&gt;
|Draw a good quantity of multiplexed sprites, fast. Balls bouncing around&lt;br /&gt;
|celton&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/FoenixRetro/demos/blob/main/MultiplexedSprites.md&lt;br /&gt;
|-&lt;br /&gt;
|F256Archon&lt;br /&gt;
|Splash screen intro, plays MIDI using the SAM2695, requires a K2 or Jr2&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256Archon/releases&lt;br /&gt;
|-&lt;br /&gt;
|f256_life&lt;br /&gt;
|An implementation of Conway&#039;s game of life&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_life&lt;br /&gt;
|-&lt;br /&gt;
|F256 Mandelbrot&lt;br /&gt;
|Draws Mandelbrot set fast (5 mins) using coprocessor math. Allows to zoom into the set.&lt;br /&gt;
|mgr42&lt;br /&gt;
|uses basic loader&lt;br /&gt;
|https://github.com/rmsk2/F256_Mandelbrot&lt;br /&gt;
|-&lt;br /&gt;
|F256ShowCase&lt;br /&gt;
|Shows sliding tiling graphics, moves with joystick&lt;br /&gt;
|eriktier&lt;br /&gt;
|$0000&lt;br /&gt;
|https://github.com/pig-games/F256Showcase&lt;br /&gt;
|-&lt;br /&gt;
|fnxmas23 &lt;br /&gt;
|PSG mod music, scrolling text, sound effects, must see demo!&lt;br /&gt;
|dwsJason and digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/apps/xmas24_k2.pgz revised version that can run on wave 2 Jr2 and K2 as well&lt;br /&gt;
|-&lt;br /&gt;
|foenixmas23&lt;br /&gt;
|Xmas 2023 demo with SID music from the classic 1983 C64 xmas demo&lt;br /&gt;
|EMWhite&lt;br /&gt;
|uses basic loader&lt;br /&gt;
|http://apps.emwhite.org/shared-files/815/?foenixmas23.zip&lt;br /&gt;
|-&lt;br /&gt;
|livingworlds&lt;br /&gt;
|Living Worlds, a port of a color cycling by Mark Ferrari, ported here on the F256 by haydenkale&lt;br /&gt;
|haydenkale&lt;br /&gt;
|$0000&lt;br /&gt;
|https://github.com/clandrew/livingworlds/tree/e4532e0d530b76ccb90368fdf5ad10bfa2deeb12&lt;br /&gt;
|-&lt;br /&gt;
|mandel&lt;br /&gt;
|Will draw a mandelbrot set in 3 hours, more useful as a stability test than a useful fractal program&lt;br /&gt;
|Mu0n&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles?tab=readme-ov-file#fractal&lt;br /&gt;
|-&lt;br /&gt;
|wormhole&lt;br /&gt;
|Shows a fast wireframe animation of a wormhole&lt;br /&gt;
|haydenkale&lt;br /&gt;
|pgz or bin at $0000&lt;br /&gt;
|https://github.com/clandrew/wormhole?tab=readme-ov-file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|bbombers&lt;br /&gt;
|Boulder Bombers (Alpha-2)  Clone of Canyon Bombers&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/BoulderBombers&amp;lt;nowiki/&amp;gt;https://github.com/scttgs0/BoulderBombers/releases/tag/alpha_2&lt;br /&gt;
|-&lt;br /&gt;
|Bombsweeper&lt;br /&gt;
|Bomb sweeper port&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/855689509520932885/1196352934083035156&lt;br /&gt;
|-&lt;br /&gt;
|Cosmic&lt;br /&gt;
|Shoot &#039;em up&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discordapp.com/channels/691915291721990194/1054250238308790342/1175982979537969214&lt;br /&gt;
|-&lt;br /&gt;
|F256-Trek&lt;br /&gt;
|Updated Trek, with modern F256 Graphics&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|[https://github.com/econtrerasd/Trek-F256/releases/tag/v1.0 https://github.com/econtrerasd/Trek-F256/releases]&lt;br /&gt;
|-&lt;br /&gt;
|F256 two to the power of eleven&lt;br /&gt;
|Port of the puzzle game of 2048&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/F256_2048&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|fillerup&lt;br /&gt;
|Fill &#039;er Up (WIP)&lt;br /&gt;
Qix-like game&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/Fill-er-up&lt;br /&gt;
|-&lt;br /&gt;
|FusionDrive&lt;br /&gt;
|An outrun type game that also plays a MIDI soundtrack&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|wip v0.2, can use a NES pad #1 to move around, or left/right arrow keys currently https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
|-&lt;br /&gt;
|jewelkeeper&lt;br /&gt;
|Sokoban port&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/apps/jewelkeeper.pgz&amp;lt;nowiki/&amp;gt;You can now specify a level file when loading the game &amp;lt;code&amp;gt;/- jewelkeeper.pgz &amp;lt;levels.txt&amp;gt;&amp;lt;/code&amp;gt;.  Find more levels at https://www.sourcecode.se/sokoban/levels.php.  Keep in mind the maximum level dimension is 20x15, anything larger will be ignored&lt;br /&gt;
|-&lt;br /&gt;
|Jr Wördl&lt;br /&gt;
|port of Wordle&lt;br /&gt;
|AgeAgeEye&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/ageageeye/Superbasic-F256Jr-examples&lt;br /&gt;
|-&lt;br /&gt;
|kartdemo&lt;br /&gt;
|Kart racing game&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225217654487253094/1228246780840513556&lt;br /&gt;
|-&lt;br /&gt;
|Lair of the Lich King&lt;br /&gt;
|Rogue like dungeon crawler. Demo has 3 levels; full has 25+&lt;br /&gt;
|Micah&lt;br /&gt;
| - lkdemo/lk.pgz&lt;br /&gt;
|[https://discord.com/channels/691915291721990194/1230670413361844244/1317256215566487593 1.0 Beta 19 Demo]&lt;br /&gt;
|-&lt;br /&gt;
|livewire&lt;br /&gt;
|Livewire (WIP)&lt;br /&gt;
Tempest-like game&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/Livewire&lt;br /&gt;
|-&lt;br /&gt;
|Maze-Munch&lt;br /&gt;
|Pac-Man clone&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/Maze-Munch&lt;br /&gt;
|-&lt;br /&gt;
|pdefense&lt;br /&gt;
|Planetary Defense (WIP)&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
mouse&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/PlanetaryDefense&lt;br /&gt;
|-&lt;br /&gt;
|Shanghai/Mahjongg&lt;br /&gt;
|A clone of Shanghai. Also known as Mahjongg&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz or KUP&lt;br /&gt;
mouse needed&lt;br /&gt;
|https://github.com/rmsk2/f256_mahjong&lt;br /&gt;
|-&lt;br /&gt;
|Ski-Jr&lt;br /&gt;
|Ski game downhill&lt;br /&gt;
|digarok&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/digarok/superbasic-traveler/blob/main/ski-jr.bas&lt;br /&gt;
|-&lt;br /&gt;
|Track &amp;amp; Field&lt;br /&gt;
|Olympic Game by Konami (WIP)&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick or keyboard&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tetris&lt;br /&gt;
|Good old 80&#039;s game&lt;br /&gt;
|Daniel Tremblay (Grenouye)&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick or keyboard&lt;br /&gt;
|https://github.com/dtremblay/c256-tetris/tree/f256k&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #01 - April 6th/7th 2024 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|15puzzle&lt;br /&gt;
|Number sort puzzle&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_15puzzle/releases&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Flight Simulator&lt;br /&gt;
|flying simulator&lt;br /&gt;
|sduensin&lt;br /&gt;
|pgz&lt;br /&gt;
|https://cdn.discordapp.com/attachments/1225481966200029286/1227764847819620454/shotel.pgz&lt;br /&gt;
|-&lt;br /&gt;
|frisbee&lt;br /&gt;
|Frisbee throw past sport game&lt;br /&gt;
|dwsJason&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dwsJason/f256/blob/develop/merlin32/frisbee/frisbee.pgz&lt;br /&gt;
|-&lt;br /&gt;
|Impasse&lt;br /&gt;
|Shoot &#039;em up&lt;br /&gt;
|digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225481966200029286/1227075699895046235&lt;br /&gt;
|-&lt;br /&gt;
|soccur&lt;br /&gt;
|mutliplayer game of soccer&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|executable:https://discord.com/channels/691915291721990194/1225481966200029286/1226808228948611184&lt;br /&gt;
source code:&lt;br /&gt;
https://discord.com/channels/691915291721990194/1225481966200029286/1226812472069980232&lt;br /&gt;
|-&lt;br /&gt;
|Trek&lt;br /&gt;
|port of classic Star Trek game&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225481966200029286/1226727849944289341&lt;br /&gt;
|-&lt;br /&gt;
|Typing Star&lt;br /&gt;
|typing reaction game&lt;br /&gt;
|haydenkale&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/clandrew/typestar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #02 - October 25th-November 1st 2024 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Bach&#039;s MIDI Hero&lt;br /&gt;
|Free MIDI/PSG play + note play tutorial&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
the MIDI feature requires a F256K2 or F256Jr2; a legacy PSG option also allows F256K and F256Jr to still hear it. Optionally uses a MIDI in controller plugged in.&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles/releases/download/v1.2/BachHero.pgz&lt;br /&gt;
|-&lt;br /&gt;
|f256_snake&lt;br /&gt;
|&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz. Use cursor keys, Atari joystick or SNES pad to play&lt;br /&gt;
|https://github.com/rmsk2/f256_snake&lt;br /&gt;
|-&lt;br /&gt;
|fnxsnake&lt;br /&gt;
|&lt;br /&gt;
|silk-neon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/ksiondag/fnxsnake&lt;br /&gt;
|-&lt;br /&gt;
|The Hallow&lt;br /&gt;
|&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/FoenixGameJamOct2024&lt;br /&gt;
|-&lt;br /&gt;
|Halloween Birthday&lt;br /&gt;
|&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/GameJam2024_F256K&lt;br /&gt;
|-&lt;br /&gt;
|Haunted Mansion&lt;br /&gt;
|&lt;br /&gt;
|digarok&lt;br /&gt;
|superbasic&lt;br /&gt;
|https://github.com/digarok/fnxgamejam-haunted-mansion&lt;br /&gt;
|-&lt;br /&gt;
|Kooyan&lt;br /&gt;
|&lt;br /&gt;
|Grenouye&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dtremblay/kooyan.git&lt;br /&gt;
|-&lt;br /&gt;
|Spooky Run&lt;br /&gt;
|&lt;br /&gt;
|dwsJason&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dwsJason/spooky&lt;br /&gt;
|-&lt;br /&gt;
|Trick or Treat&lt;br /&gt;
|&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/TrickOrTreat&lt;br /&gt;
|-&lt;br /&gt;
|Ultima III - Exodus&lt;br /&gt;
|port&lt;br /&gt;
|Minstrel Dragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/minstreldragon/F256_Ultima_3&lt;br /&gt;
|-&lt;br /&gt;
|Warlock&lt;br /&gt;
|remake of 68000 game&lt;br /&gt;
|xDraconian&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick&lt;br /&gt;
DOWN=change_level&lt;br /&gt;
UP=jump&lt;br /&gt;
UP-LEFT=leap&lt;br /&gt;
UP-RIGHT=leap&lt;br /&gt;
|https://github.com/scttgs0/Foenix_GameJam_Oct2024&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Game Jam #03 - April 18th-April 27th 2025 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Arcade Shanghai v1.2&lt;br /&gt;
|Shanghai clone&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic, keep the .bas program in root, the rest in the provided ashanghai/ folder&lt;br /&gt;
|https://github.com/econtrerasd/ashanghai/releases&lt;br /&gt;
|-&lt;br /&gt;
|Bawk Bawk Cluck Cluck&lt;br /&gt;
|Chicken themed platformer&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/FoenixGameJamApr2025&lt;br /&gt;
|-&lt;br /&gt;
|BitLadder&lt;br /&gt;
|Shoot &#039;Em Up&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz. For full sound compatibility, a Jr2 or K2 is needed. &lt;br /&gt;
Uses 4 sound chips! (PSG, SID, OPL3, MIDI)&lt;br /&gt;
|https://mu0n.itch.io/bitladder&lt;br /&gt;
|-&lt;br /&gt;
|F256_Commando&lt;br /&gt;
|Commando port&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/F256_Commando&lt;br /&gt;
|-&lt;br /&gt;
|F256_LodeRunner&lt;br /&gt;
|Lode Runner port&lt;br /&gt;
|Minstrel Dragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/minstreldragon/F256_Loderunner/releases&lt;br /&gt;
|-&lt;br /&gt;
|Mahjong&lt;br /&gt;
|Shangai clone&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_mahjong/releases&lt;br /&gt;
|-&lt;br /&gt;
|Quarth&lt;br /&gt;
|Block placement arcade game&lt;br /&gt;
|Grenouye&lt;br /&gt;
|pgz&lt;br /&gt;
|https://grenouye.itch.io/f256-quarth&lt;br /&gt;
|-&lt;br /&gt;
|Skee(ster)-Ball&lt;br /&gt;
|&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/skeeball256/tree/main&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Music ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|cozyMIDI&lt;br /&gt;
|Plays a SMF with the SAM2695 or VS1053b &lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|cozyMIDI v2.4 can open and play type 0 and type 1 standard MIDI files (SMF)&lt;br /&gt;
needs a Jr2 or K2&lt;br /&gt;
with a 2x core at https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
run operation 1: just as itself, it will force you to pick a midi file in the &#039;midi/&#039; folder /- cozymidi&lt;br /&gt;
&lt;br /&gt;
run operation 2: in f/manager, if you put this as &amp;lt;code&amp;gt;midiplayer.pgz&amp;lt;/code&amp;gt;in the &#039;_apps/&#039; folder, f/manager will open midi file with it when you launch .mid files. &lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/cozymidi.pgz&lt;br /&gt;
|-&lt;br /&gt;
|digestMidi&lt;br /&gt;
|converts .mid to .dim&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|.mid files are slow to load, parse and prepare for a playback. This tool comes in to convert them into a .dim format that strips out unnecessary MIDI commands and sets it up for timer0 time delays. Works with type 0 and type 1 standard midi files. This tools does the conversion and lets you hear the result.&lt;br /&gt;
Find the latest version here: https://github.com/Mu0n/F256MiscGoodies/tree/main/apps&lt;br /&gt;
|-&lt;br /&gt;
|EdInHisLib&lt;br /&gt;
|SID+OPL3 simultaneously&lt;br /&gt;
|beethead, ported from xantax&lt;br /&gt;
|pgz&lt;br /&gt;
|F256 port: https://discordapp.com/channels/691915291721990194/1054249926521016392/1184413356598231120&lt;br /&gt;
original: &amp;lt;nowiki&amp;gt;https://csdb.dk/release/?id=170898&amp;lt;/nowiki&amp;gt;. Not 100% accurate but close.&lt;br /&gt;
|-&lt;br /&gt;
|F256amp&lt;br /&gt;
|mp3, ogg, wav, wma file playback&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|(aka audioplayer.pgz) v2.3 Needs a Jr.2 or K2 since it uses the VS1053b chip.&lt;br /&gt;
For a starter collection of .mp3 and other audio files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
run operation 1: just as itself, it will force you to pick an audio file. it expects a &amp;lt;code&amp;gt;media/mp3/&amp;lt;/code&amp;gt; folder, but it can live without it and peek into the root instead. &lt;br /&gt;
&lt;br /&gt;
run operation 2: with an argument, it will auto-play it: /- f256amp yourmp3file.mp3 &lt;br /&gt;
&lt;br /&gt;
run operation 3:  in f/manager, if you put this as &amp;lt;code&amp;gt;audioplayer.pgz&amp;lt;/code&amp;gt; in the &#039;_apps/&#039; folder. This lets f/manager automatically open up .mp3, .wav, .ogg, .wma that you press enter on.&lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/f256amp.pgz&lt;br /&gt;
|-&lt;br /&gt;
|FireJam&lt;br /&gt;
|all chips, music playing with MIDI in&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v1.2 MIDI in and out capable, it will still partially work with a Jr. (PSG, and SID if you have them), a K (PSG, SID, OPL3) and the newest wave 2 Jr2 and K2 (PSG, SID, OPL3, SAM, VS1053b).&lt;br /&gt;
Best to use with a MIDI in controller, but it&#039;ll be controllable with arrows and space to make notes individually, or the F keys to start beats. https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
|-&lt;br /&gt;
|jrtracker&lt;br /&gt;
|Tracker based in basic and uses the PSG&lt;br /&gt;
(considered obsolete, use tracker2)&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://ptb.discord.com/channels/691915291721990194/1008139105386889346/1188292876984143983&lt;br /&gt;
|-&lt;br /&gt;
|modo&lt;br /&gt;
|MOD player using the PSG&lt;br /&gt;
|dwsJason and digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discordapp.com/channels/691915291721990194/855689509520932885/1190723114661859429&lt;br /&gt;
|-&lt;br /&gt;
|Musik&lt;br /&gt;
|Music piece demo using MIDI&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/Musik/blob/main/Musik.PGZ&amp;lt;nowiki/&amp;gt;Musikalisches Würfelspiel&lt;br /&gt;
Requires a Jr2 or K2 since it uses MIDI&lt;br /&gt;
|-&lt;br /&gt;
|opl3snooper&lt;br /&gt;
|playback of VGM files (that use opl2 and opl3) and MIDI in&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v1.0  mainly plays back vgm files, but you can pause it and snoop around the channel instruments and play up to 18 note polyphony with MIDI in. expects a collection in media/vgm/, or it will browse from the root if it can&#039;t find.  &lt;br /&gt;
It can load a .spl (Simple PLaylist) text file, which is one file per line, including their respective paths. &lt;br /&gt;
Requires a Jr2 or K2 with a 2x core to use the extra bank of SRAM.&lt;br /&gt;
For a starter collection of .vgm files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
run operation 1: just as itself, it will force you to pick a midi file in the &#039;media/vgm/&#039; folder &lt;br /&gt;
&lt;br /&gt;
run operation 2: in f/manager (v1.1b9 and up), if you put this as &amp;lt;code&amp;gt;vgmplayer.pgz&amp;lt;/code&amp;gt;in the &#039;_apps/&#039; folder, f/manager will open midi file with it when you launch .vgm files. &lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/opl3snooper.pgz &lt;br /&gt;
|-&lt;br /&gt;
|opl3tweak&lt;br /&gt;
|uses MIDI in, plays 18 channels polyphony in real time to the YMF262 OPL3. Fish for random register values.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v0.1. Can&#039;t save or load instrument definitions yet. Needs a K2 with a MIDI in currently.  https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/opl3tweak.pgz&lt;br /&gt;
Arrows to move around, + and - keys to incr/decr values or type in a hex value directly under the highlighted position.&lt;br /&gt;
|-&lt;br /&gt;
|piano&lt;br /&gt;
|Plays some PSG notes with the keyboard&lt;br /&gt;
|Mu0n&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles?tab=readme-ov-file#pulse-sound-generator-piano&lt;br /&gt;
|-&lt;br /&gt;
|playvgm&lt;br /&gt;
|plays a headless vgm file with OPL3&lt;br /&gt;
|G33kyAndIKnowIt&lt;br /&gt;
|pgx&lt;br /&gt;
|https://github.com/natebarney/playvgm-f256k&lt;br /&gt;
some example music files can be gotten from this post:&lt;br /&gt;
[https://discord.com/channels/691915291721990194/975117322836656138/1220366429640065074 https://discord.com/channels/6][https://discord.com/channels/691915291721990194/975117322836656138/1220366429640065074 91915291721990194/975117322836656138/1220366429640065074]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) open a normal .vgm into a hex editor &amp;lt;nowiki/&amp;gt;and cut out the header bytes from 0x00 to 0x&amp;lt;nowiki/&amp;gt;FF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) run by first using superbasic&#039;s &#039;&#039;&#039;&#039;&#039;bload&#039;&#039;&#039;&#039;&#039; &#039;&#039;&#039;&#039;&#039;&amp;quot;yourmusicfile&amp;quot;, $01000&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
followed by running this program with &#039;&#039;&#039;&#039;&#039;/- playvgm.pgx&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|sidtweak&lt;br /&gt;
|uses MIDI in, plays 6 channels polyphony in real time to the dual SID. Fish for random register values.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v0.1. Can&#039;t save or load instrument definitions yet. Needs a K2 with a MIDI in currently. https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/sidtweak.pgz&lt;br /&gt;
Arrows to move around, + and - keys to incr/decr values or type in a hex value directly under the highlighted position.&lt;br /&gt;
|-&lt;br /&gt;
|rawsidplayer&lt;br /&gt;
|plays raw PSID files from the HVSC collection, converted by zigreSID&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|(formely psidplayer) v0.2 find rawsidplayer.pgz and a starter .rsd file (raw sid dumps). For a starter collection of .rsd files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection &lt;br /&gt;
extract sid.zip into a folder /sid/ in the root of your SD card, that&#039;s where psidplayer.pgz will first look to let you pick a file. failing that, it will fall back to the root folder and let you navigate.&lt;br /&gt;
&lt;br /&gt;
program link:&lt;br /&gt;
&lt;br /&gt;
https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/rawsidplayer.pgz&lt;br /&gt;
|-&lt;br /&gt;
|tracker2 v1.5&lt;br /&gt;
|Like jrtracker.bas, but using both PSGs&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/econtrerasd/Tracker2/releases&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Uti&amp;lt;nowiki/&amp;gt;lities ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Descrip&amp;lt;nowiki/&amp;gt;tion&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|basic2text&lt;br /&gt;
|A simple utility for translating Commodore BASIC (all variants) from its native tokenized file format to a text format that can be opened with SuperBASIC. Does not perform any code translation: all adaptation is up to you. &lt;br /&gt;
|Micah&lt;br /&gt;
|pgZ&lt;br /&gt;
|https://github.com/WartyMN/F256-BasText/releases/latest&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|dcopy&lt;br /&gt;
|A tool to copy files from one drive to another or to/from your PC via RS-232 and a nullmodem cable&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz/flash&lt;br /&gt;
|https://github.com/rmsk2/f256_dcopy&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|f/manager&lt;br /&gt;
|A general file utility, launcher, and memory viewing program. Dual-panel file/memory browsers; copy between disks,  between folders on same disk, and from memory to disk and vice versa; delete, rename, and duplicate files; view files as hex or text (with word-wrap); launch applications and known file types; set the RTC clock; search in RAM and flash. Works with internal SD card and IEC devices such as FNX1591 and Commodore 1541. Can be installed in primary flash position ahead of SuperBASIC or DOS, or at a higher location. Can also be run from disk with &amp;quot;- fm.pgz&amp;quot;.&lt;br /&gt;
|Micah&lt;br /&gt;
|pgZ/flash&lt;br /&gt;
|https://github.com/WartyMN/F256-FileManager/releases&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|f256_reset&lt;br /&gt;
|A small utility that lets you reset the machine through this piece of flash software&lt;br /&gt;
|mgr42&lt;br /&gt;
|flash&lt;br /&gt;
|https://github.com/rmsk2/f256_reset&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|fcart&lt;br /&gt;
|A program that allows to write data to flash expansion cartridges &lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz, on-board and cartridge flash&lt;br /&gt;
|https://github.com/rmsk2/cartflash&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|flashcart&lt;br /&gt;
|Allows to wipe a block of flash or write a program to a flash cart, from this basic program from the F256Jr/K&lt;br /&gt;
|redfool.&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Red-Fool/F256_FlashCart/tree/main&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|flashselect&lt;br /&gt;
|Allows to select a program to start from a flash cartridge via a menu&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz, on-board and cartridge flash&lt;br /&gt;
|https://github.com/rmsk2/flashselect&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|fonts&lt;br /&gt;
|A variety of fonts using the standard F256 character set arrangement. Load with the F256 file manager (f/manager), or your own code.&lt;br /&gt;
|Micah&lt;br /&gt;
|(not a program)&lt;br /&gt;
|[https://github.com/WartyMN/Foenix-Fonts/tree/main https://github.com/WartyMN/Foenix-Fonts]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|midiStuff&lt;br /&gt;
|Test program for a F256K2 or F256Jr2 that sends MIDI data to the internal sam2695 dream chip that produces MIDI based audio. Also test a keyboard controller plugged in the MIDI in port.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles/blob/main/README.md#midistuff&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|moreorless&lt;br /&gt;
|A text editor for the Foenix 256 line of computers&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/moreorless/releases/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pgz2flash&lt;br /&gt;
|A program for your Linux, Windows or MacOS machine to turn any PGZ or SuperBASIC program into a KUP which can be run from cartridge or onboard flash memory&lt;br /&gt;
|mgr42&lt;br /&gt;
|Executable for modern computers&lt;br /&gt;
|https://github.com/rmsk2/pgz2flash&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|sidTester&lt;br /&gt;
|Simple superbasic program that tests out all 3 voices of the SID1 on the Jr (if populated), K, Jr2 and K2. Ported by Mu0n, made by andy on HackJunk.com https://hackjunk.com/2017/11/07/commodore-64-sid-tester/&lt;br /&gt;
|andy&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/blob/main/apps/sidtester.bas&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|testsuite.bas&lt;br /&gt;
|a series of tests for your F256, video modes and sound chips&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|run from the root, https://raw.githubusercontent.com/Mu0n/F256MiscGoodies/refs/heads/main/apps/testsuite.bas&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|wget&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|&amp;lt;nowiki/&amp;gt;fetches a file from a http address if you have a network connection active. Works with the K and Jr. ESP32 Feather &#039;huzzah&#039; board. Not meant to be used with the K2 and Jr2 Wiznet chip.&lt;br /&gt;
|gadget&lt;br /&gt;
|&amp;lt;nowiki/&amp;gt;pgz/flash&lt;br /&gt;
|https://github.com/ghackwrench/F256_wget&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sample Code ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Assembly examples&lt;br /&gt;
|Sample programs for several features of the Foenix F256K and Jr.&lt;br /&gt;
|mgr42&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/rmsk2/Hello_Foenix256_Jr/blob/main/testprogs.md&lt;br /&gt;
|-&lt;br /&gt;
|cc65 example&lt;br /&gt;
|c example code&lt;br /&gt;
|gadget&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/ghackwrench/F256_Jr_Kernel_DOS&lt;br /&gt;
|-&lt;br /&gt;
|digarok basic stuff&lt;br /&gt;
|Lots of basic examples&lt;br /&gt;
|digarok&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/digarok/superbasic-traveler/tree/main&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K asm doodles&lt;br /&gt;
|Some asm examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleASMdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K basic doodles&lt;br /&gt;
|Some basic examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K C doodles&lt;br /&gt;
|Some C examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Raúl SQ basic repo&lt;br /&gt;
|F256 SuperBASIC Trigonometry&lt;br /&gt;
|Raúl SQ&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/raul-sq/FoenixF256K2&lt;br /&gt;
|-&lt;br /&gt;
|tcp example&lt;br /&gt;
|connects to a server and gets typed in text echoed back to you&lt;br /&gt;
|gadget&lt;br /&gt;
|$2000&lt;br /&gt;
|https://github.com/ghackwrench/F256_example_tcp&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Firmware&amp;diff=38347</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Firmware&amp;diff=38347"/>
		<updated>2026-01-01T15:39:37Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Video tutorial: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Foenix F256K, Jr., K2 and Jr2 computers contain 512K of flash memory which is intended to store software which should be available to the user without any media like SD-cards or IEC drives present. Think of it like a space traditionally occupied by ROM chips of 80&#039;s computers containing critical, often used programs and routines, but instead of being very rarely updated with scarce ROM chip revisions, it can be quickly updated with firmware revisions using the FoenixMgr python scripts.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important Note&#039;&#039;&#039;: for the F256K2, each core has its own dedicated area of 512K of flash memory. When switching to a new core, a separate dedicated area of 512K exists for that core and there&#039;s an expectation that the process of flashing the firmware has to be done for it.   &lt;br /&gt;
&lt;br /&gt;
This collection of software can be changed by the user by simply reprogramming the flash &amp;quot;ROM&amp;quot;. At the moment (2025+) the following applications are stored in flash as a default loadout: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Collection of 6502/65816 firmware programs as of firmware release version 2025.13&lt;br /&gt;
!Absolute Block* in Memory Map&lt;br /&gt;
!Block* Offset in onboard Flash&lt;br /&gt;
!Name of program&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x40&lt;br /&gt;
|0x00&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;reserved&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x41&lt;br /&gt;
|0x01&lt;br /&gt;
|xdev&lt;br /&gt;
|trampoline program meant to react to developper scripts from [[FoenixMgr]]: pcopy, runpgz, runpgx&lt;br /&gt;
|-&lt;br /&gt;
|0x42 to 0x45&lt;br /&gt;
|0x02 to 0x05&lt;br /&gt;
|superbasic&lt;br /&gt;
|if xdev has nothing to react to, superbasic is your default startup program&lt;br /&gt;
|-&lt;br /&gt;
|0x46&lt;br /&gt;
|0x06&lt;br /&gt;
|dos&lt;br /&gt;
|minimalistic file management and info shell&lt;br /&gt;
|-&lt;br /&gt;
|0x47&lt;br /&gt;
|0x07&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x48&lt;br /&gt;
|0x08&lt;br /&gt;
|fcart&lt;br /&gt;
|allows a user to flash the 256K Flast Cart with 8kb prepared blocks. See [[CartFlasher|this for usage]]&lt;br /&gt;
|-&lt;br /&gt;
|0x49&lt;br /&gt;
|0x09&lt;br /&gt;
|&#039;&#039;&#039;free&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x4A&lt;br /&gt;
|0x0A&lt;br /&gt;
|help&lt;br /&gt;
|text help on screen for superbasic programming&lt;br /&gt;
|-&lt;br /&gt;
|0x4B to 0x4E&lt;br /&gt;
|0x0B to 0x0E&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x4F&lt;br /&gt;
|0x0F&lt;br /&gt;
|wget&lt;br /&gt;
|web get, works only for gen1 K and Jr equipped with a feather wifi board&lt;br /&gt;
|-&lt;br /&gt;
|0x50 to 0x56&lt;br /&gt;
|0x10 to 0x16&lt;br /&gt;
|fm&lt;br /&gt;
|f/manager - a rather feature rich file manipulation, program launcher and memory exploration software&lt;br /&gt;
|-&lt;br /&gt;
|0x57&lt;br /&gt;
|0x17&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x58 to 0x5B&lt;br /&gt;
|0x18 to 0x1B&lt;br /&gt;
|mless&lt;br /&gt;
|moreorless - a text editor. See [[Moreorless|here for more information.]]&lt;br /&gt;
|-&lt;br /&gt;
|0x5D to 0x7B&lt;br /&gt;
|0x1D to 0x3B&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x7C to 0x7F&lt;br /&gt;
|0x3C to 0x3F&lt;br /&gt;
|microkernel&lt;br /&gt;
|the microkernel, gadget&#039;s masterpiece used by many programs&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Block: each block of flash memory is 8kb is size&lt;br /&gt;
&lt;br /&gt;
To reprogram the flash, you can start with the [https://github.com/FoenixRetro/f256-firmware/releases official firmware releases in this github.] &lt;br /&gt;
&lt;br /&gt;
This repo is part the [https://github.com/FoenixRetro FoenixRetro] Github organisation which in turn is an attempt to gather forks of all projects which are part of the firmware and other resources relevant for the Foenix F256 new retro computers.&lt;br /&gt;
&lt;br /&gt;
There are now two firmware loads available: Gen1 - for K and Jr and Gen2 - for K2 and Jr2. The only difference between these loads is the superbasic part of the firmware, in order to have a properly identified superbasic startup screen that reflects the exact computer and generation in the logo.&lt;br /&gt;
&lt;br /&gt;
====== Video tutorial: ======&lt;br /&gt;
A part of a tutorial video covers updating the firmware as a follow up step to updating the FPGA core, check it at 6:45 and on. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;pOab0ocKqac&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 6809 firmware: ====&lt;br /&gt;
This core has specialized firmware - it is best to ask around in the appropriate channels of the [https://discord.gg/9vjUEGgcUS Foenix discord].&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Firmware&amp;diff=38346</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Firmware&amp;diff=38346"/>
		<updated>2026-01-01T15:38:58Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Video tutorial: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Foenix F256K, Jr., K2 and Jr2 computers contain 512K of flash memory which is intended to store software which should be available to the user without any media like SD-cards or IEC drives present. Think of it like a space traditionally occupied by ROM chips of 80&#039;s computers containing critical, often used programs and routines, but instead of being very rarely updated with scarce ROM chip revisions, it can be quickly updated with firmware revisions using the FoenixMgr python scripts.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important Note&#039;&#039;&#039;: for the F256K2, each core has its own dedicated area of 512K of flash memory. When switching to a new core, a separate dedicated area of 512K exists for that core and there&#039;s an expectation that the process of flashing the firmware has to be done for it.   &lt;br /&gt;
&lt;br /&gt;
This collection of software can be changed by the user by simply reprogramming the flash &amp;quot;ROM&amp;quot;. At the moment (2025+) the following applications are stored in flash as a default loadout: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Collection of 6502/65816 firmware programs as of firmware release version 2025.13&lt;br /&gt;
!Absolute Block* in Memory Map&lt;br /&gt;
!Block* Offset in onboard Flash&lt;br /&gt;
!Name of program&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x40&lt;br /&gt;
|0x00&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;reserved&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x41&lt;br /&gt;
|0x01&lt;br /&gt;
|xdev&lt;br /&gt;
|trampoline program meant to react to developper scripts from [[FoenixMgr]]: pcopy, runpgz, runpgx&lt;br /&gt;
|-&lt;br /&gt;
|0x42 to 0x45&lt;br /&gt;
|0x02 to 0x05&lt;br /&gt;
|superbasic&lt;br /&gt;
|if xdev has nothing to react to, superbasic is your default startup program&lt;br /&gt;
|-&lt;br /&gt;
|0x46&lt;br /&gt;
|0x06&lt;br /&gt;
|dos&lt;br /&gt;
|minimalistic file management and info shell&lt;br /&gt;
|-&lt;br /&gt;
|0x47&lt;br /&gt;
|0x07&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x48&lt;br /&gt;
|0x08&lt;br /&gt;
|fcart&lt;br /&gt;
|allows a user to flash the 256K Flast Cart with 8kb prepared blocks. See [[CartFlasher|this for usage]]&lt;br /&gt;
|-&lt;br /&gt;
|0x49&lt;br /&gt;
|0x09&lt;br /&gt;
|&#039;&#039;&#039;free&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x4A&lt;br /&gt;
|0x0A&lt;br /&gt;
|help&lt;br /&gt;
|text help on screen for superbasic programming&lt;br /&gt;
|-&lt;br /&gt;
|0x4B to 0x4E&lt;br /&gt;
|0x0B to 0x0E&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x4F&lt;br /&gt;
|0x0F&lt;br /&gt;
|wget&lt;br /&gt;
|web get, works only for gen1 K and Jr equipped with a feather wifi board&lt;br /&gt;
|-&lt;br /&gt;
|0x50 to 0x56&lt;br /&gt;
|0x10 to 0x16&lt;br /&gt;
|fm&lt;br /&gt;
|f/manager - a rather feature rich file manipulation, program launcher and memory exploration software&lt;br /&gt;
|-&lt;br /&gt;
|0x57&lt;br /&gt;
|0x17&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x58 to 0x5B&lt;br /&gt;
|0x18 to 0x1B&lt;br /&gt;
|mless&lt;br /&gt;
|moreorless - a text editor. See [[Moreorless|here for more information.]]&lt;br /&gt;
|-&lt;br /&gt;
|0x5D to 0x7B&lt;br /&gt;
|0x1D to 0x3B&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x7C to 0x7F&lt;br /&gt;
|0x3C to 0x3F&lt;br /&gt;
|microkernel&lt;br /&gt;
|the microkernel, gadget&#039;s masterpiece used by many programs&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Block: each block of flash memory is 8kb is size&lt;br /&gt;
&lt;br /&gt;
To reprogram the flash, you can start with the [https://github.com/FoenixRetro/f256-firmware/releases official firmware releases in this github.] &lt;br /&gt;
&lt;br /&gt;
This repo is part the [https://github.com/FoenixRetro FoenixRetro] Github organisation which in turn is an attempt to gather forks of all projects which are part of the firmware and other resources relevant for the Foenix F256 new retro computers.&lt;br /&gt;
&lt;br /&gt;
There are now two firmware loads available: Gen1 - for K and Jr and Gen2 - for K2 and Jr2. The only difference between these loads is the superbasic part of the firmware, in order to have a properly identified superbasic startup screen that reflects the exact computer and generation in the logo.&lt;br /&gt;
&lt;br /&gt;
====== Video tutorial: ======&lt;br /&gt;
A part of a tutorial video covers updating the firmware as a follow up step to updating the FPGA core, check it at 4:05 and on. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;pOab0ocKqac&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 6809 firmware: ====&lt;br /&gt;
This core has specialized firmware - it is best to ask around in the appropriate channels of the [https://discord.gg/9vjUEGgcUS Foenix discord].&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Firmware&amp;diff=38345</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Firmware&amp;diff=38345"/>
		<updated>2026-01-01T15:38:10Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Video tutorial: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Foenix F256K, Jr., K2 and Jr2 computers contain 512K of flash memory which is intended to store software which should be available to the user without any media like SD-cards or IEC drives present. Think of it like a space traditionally occupied by ROM chips of 80&#039;s computers containing critical, often used programs and routines, but instead of being very rarely updated with scarce ROM chip revisions, it can be quickly updated with firmware revisions using the FoenixMgr python scripts.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important Note&#039;&#039;&#039;: for the F256K2, each core has its own dedicated area of 512K of flash memory. When switching to a new core, a separate dedicated area of 512K exists for that core and there&#039;s an expectation that the process of flashing the firmware has to be done for it.   &lt;br /&gt;
&lt;br /&gt;
This collection of software can be changed by the user by simply reprogramming the flash &amp;quot;ROM&amp;quot;. At the moment (2025+) the following applications are stored in flash as a default loadout: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Collection of 6502/65816 firmware programs as of firmware release version 2025.13&lt;br /&gt;
!Absolute Block* in Memory Map&lt;br /&gt;
!Block* Offset in onboard Flash&lt;br /&gt;
!Name of program&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x40&lt;br /&gt;
|0x00&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;reserved&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x41&lt;br /&gt;
|0x01&lt;br /&gt;
|xdev&lt;br /&gt;
|trampoline program meant to react to developper scripts from [[FoenixMgr]]: pcopy, runpgz, runpgx&lt;br /&gt;
|-&lt;br /&gt;
|0x42 to 0x45&lt;br /&gt;
|0x02 to 0x05&lt;br /&gt;
|superbasic&lt;br /&gt;
|if xdev has nothing to react to, superbasic is your default startup program&lt;br /&gt;
|-&lt;br /&gt;
|0x46&lt;br /&gt;
|0x06&lt;br /&gt;
|dos&lt;br /&gt;
|minimalistic file management and info shell&lt;br /&gt;
|-&lt;br /&gt;
|0x47&lt;br /&gt;
|0x07&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x48&lt;br /&gt;
|0x08&lt;br /&gt;
|fcart&lt;br /&gt;
|allows a user to flash the 256K Flast Cart with 8kb prepared blocks. See [[CartFlasher|this for usage]]&lt;br /&gt;
|-&lt;br /&gt;
|0x49&lt;br /&gt;
|0x09&lt;br /&gt;
|&#039;&#039;&#039;free&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x4A&lt;br /&gt;
|0x0A&lt;br /&gt;
|help&lt;br /&gt;
|text help on screen for superbasic programming&lt;br /&gt;
|-&lt;br /&gt;
|0x4B to 0x4E&lt;br /&gt;
|0x0B to 0x0E&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x4F&lt;br /&gt;
|0x0F&lt;br /&gt;
|wget&lt;br /&gt;
|web get, works only for gen1 K and Jr equipped with a feather wifi board&lt;br /&gt;
|-&lt;br /&gt;
|0x50 to 0x56&lt;br /&gt;
|0x10 to 0x16&lt;br /&gt;
|fm&lt;br /&gt;
|f/manager - a rather feature rich file manipulation, program launcher and memory exploration software&lt;br /&gt;
|-&lt;br /&gt;
|0x57&lt;br /&gt;
|0x17&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x58 to 0x5B&lt;br /&gt;
|0x18 to 0x1B&lt;br /&gt;
|mless&lt;br /&gt;
|moreorless - a text editor. See [[Moreorless|here for more information.]]&lt;br /&gt;
|-&lt;br /&gt;
|0x5D to 0x7B&lt;br /&gt;
|0x1D to 0x3B&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x7C to 0x7F&lt;br /&gt;
|0x3C to 0x3F&lt;br /&gt;
|microkernel&lt;br /&gt;
|the microkernel, gadget&#039;s masterpiece used by many programs&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Block: each block of flash memory is 8kb is size&lt;br /&gt;
&lt;br /&gt;
To reprogram the flash, you can start with the [https://github.com/FoenixRetro/f256-firmware/releases official firmware releases in this github.] &lt;br /&gt;
&lt;br /&gt;
This repo is part the [https://github.com/FoenixRetro FoenixRetro] Github organisation which in turn is an attempt to gather forks of all projects which are part of the firmware and other resources relevant for the Foenix F256 new retro computers.&lt;br /&gt;
&lt;br /&gt;
There are now two firmware loads available: Gen1 - for K and Jr and Gen2 - for K2 and Jr2. The only difference between these loads is the superbasic part of the firmware, in order to have a properly identified superbasic startup screen that reflects the exact computer and generation in the logo.&lt;br /&gt;
&lt;br /&gt;
====== Video tutorial: ======&lt;br /&gt;
A timestamped part of a tutorial video covers updating the firmware as a follow up step to updating the FPGA core. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;dzyMjtC-yjFTxbgu&amp;amp;t=405&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 6809 firmware: ====&lt;br /&gt;
This core has specialized firmware - it is best to ask around in the appropriate channels of the [https://discord.gg/9vjUEGgcUS Foenix discord].&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Firmware&amp;diff=38344</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Firmware&amp;diff=38344"/>
		<updated>2026-01-01T15:37:09Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Foenix F256K, Jr., K2 and Jr2 computers contain 512K of flash memory which is intended to store software which should be available to the user without any media like SD-cards or IEC drives present. Think of it like a space traditionally occupied by ROM chips of 80&#039;s computers containing critical, often used programs and routines, but instead of being very rarely updated with scarce ROM chip revisions, it can be quickly updated with firmware revisions using the FoenixMgr python scripts.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important Note&#039;&#039;&#039;: for the F256K2, each core has its own dedicated area of 512K of flash memory. When switching to a new core, a separate dedicated area of 512K exists for that core and there&#039;s an expectation that the process of flashing the firmware has to be done for it.   &lt;br /&gt;
&lt;br /&gt;
This collection of software can be changed by the user by simply reprogramming the flash &amp;quot;ROM&amp;quot;. At the moment (2025+) the following applications are stored in flash as a default loadout: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Collection of 6502/65816 firmware programs as of firmware release version 2025.13&lt;br /&gt;
!Absolute Block* in Memory Map&lt;br /&gt;
!Block* Offset in onboard Flash&lt;br /&gt;
!Name of program&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x40&lt;br /&gt;
|0x00&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;reserved&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x41&lt;br /&gt;
|0x01&lt;br /&gt;
|xdev&lt;br /&gt;
|trampoline program meant to react to developper scripts from [[FoenixMgr]]: pcopy, runpgz, runpgx&lt;br /&gt;
|-&lt;br /&gt;
|0x42 to 0x45&lt;br /&gt;
|0x02 to 0x05&lt;br /&gt;
|superbasic&lt;br /&gt;
|if xdev has nothing to react to, superbasic is your default startup program&lt;br /&gt;
|-&lt;br /&gt;
|0x46&lt;br /&gt;
|0x06&lt;br /&gt;
|dos&lt;br /&gt;
|minimalistic file management and info shell&lt;br /&gt;
|-&lt;br /&gt;
|0x47&lt;br /&gt;
|0x07&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x48&lt;br /&gt;
|0x08&lt;br /&gt;
|fcart&lt;br /&gt;
|allows a user to flash the 256K Flast Cart with 8kb prepared blocks. See [[CartFlasher|this for usage]]&lt;br /&gt;
|-&lt;br /&gt;
|0x49&lt;br /&gt;
|0x09&lt;br /&gt;
|&#039;&#039;&#039;free&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x4A&lt;br /&gt;
|0x0A&lt;br /&gt;
|help&lt;br /&gt;
|text help on screen for superbasic programming&lt;br /&gt;
|-&lt;br /&gt;
|0x4B to 0x4E&lt;br /&gt;
|0x0B to 0x0E&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x4F&lt;br /&gt;
|0x0F&lt;br /&gt;
|wget&lt;br /&gt;
|web get, works only for gen1 K and Jr equipped with a feather wifi board&lt;br /&gt;
|-&lt;br /&gt;
|0x50 to 0x56&lt;br /&gt;
|0x10 to 0x16&lt;br /&gt;
|fm&lt;br /&gt;
|f/manager - a rather feature rich file manipulation, program launcher and memory exploration software&lt;br /&gt;
|-&lt;br /&gt;
|0x57&lt;br /&gt;
|0x17&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x58 to 0x5B&lt;br /&gt;
|0x18 to 0x1B&lt;br /&gt;
|mless&lt;br /&gt;
|moreorless - a text editor. See [[Moreorless|here for more information.]]&lt;br /&gt;
|-&lt;br /&gt;
|0x5D to 0x7B&lt;br /&gt;
|0x1D to 0x3B&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x7C to 0x7F&lt;br /&gt;
|0x3C to 0x3F&lt;br /&gt;
|microkernel&lt;br /&gt;
|the microkernel, gadget&#039;s masterpiece used by many programs&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Block: each block of flash memory is 8kb is size&lt;br /&gt;
&lt;br /&gt;
To reprogram the flash, you can start with the [https://github.com/FoenixRetro/f256-firmware/releases official firmware releases in this github.] &lt;br /&gt;
&lt;br /&gt;
This repo is part the [https://github.com/FoenixRetro FoenixRetro] Github organisation which in turn is an attempt to gather forks of all projects which are part of the firmware and other resources relevant for the Foenix F256 new retro computers.&lt;br /&gt;
&lt;br /&gt;
There are now two firmware loads available: Gen1 - for K and Jr and Gen2 - for K2 and Jr2. The only difference between these loads is the superbasic part of the firmware, in order to have a properly identified superbasic startup screen that reflects the exact computer and generation in the logo.&lt;br /&gt;
&lt;br /&gt;
====== Video tutorial: ======&lt;br /&gt;
A timestamped part of a tutorial video covers updating the firmware as a follow up step to updating the FPGA core. &lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/pOab0ocKqac?si=dzyMjtC-yjFTxbgu&amp;amp;t=405&lt;br /&gt;
&lt;br /&gt;
==== 6809 firmware: ====&lt;br /&gt;
This core has specialized firmware - it is best to ask around in the appropriate channels of the [https://discord.gg/9vjUEGgcUS Foenix discord].&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Firmware&amp;diff=38343</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Firmware&amp;diff=38343"/>
		<updated>2026-01-01T15:27:33Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Foenix F256K, Jr., K2 and Jr2 computers contain 512K of flash memory which is intended to store software which should be available to the user without any media like SD-cards or IEC drives present. Think of it like a space traditionally occupied by ROM chips of 80&#039;s computers containing critical, often used programs and routines, but instead of being very rarely updated with scarce ROM chip revisions, it can be quickly updated with firmware revisions using the FoenixMgr python scripts.  &lt;br /&gt;
&lt;br /&gt;
This collection of software can be changed by the user by simply reprogramming the flash &amp;quot;ROM&amp;quot;. At the moment (2025+) the following applications are stored in flash as a default loadout: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Collection of firmware programs as of firmware release version 2025.13&lt;br /&gt;
!Absolute Block* in Memory Map&lt;br /&gt;
!Block* Offset in onboard Flash&lt;br /&gt;
!Name of program&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x40&lt;br /&gt;
|0x00&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;reserved&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x41&lt;br /&gt;
|0x01&lt;br /&gt;
|xdev&lt;br /&gt;
|trampoline program meant to react to developper scripts from [[FoenixMgr]]: pcopy, runpgz, runpgx&lt;br /&gt;
|-&lt;br /&gt;
|0x42 to 0x45&lt;br /&gt;
|0x02 to 0x05&lt;br /&gt;
|superbasic&lt;br /&gt;
|if xdev has nothing to react to, superbasic is your default startup program&lt;br /&gt;
|-&lt;br /&gt;
|0x46&lt;br /&gt;
|0x06&lt;br /&gt;
|dos&lt;br /&gt;
|minimalistic file management and info shell&lt;br /&gt;
|-&lt;br /&gt;
|0x47&lt;br /&gt;
|0x07&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x48&lt;br /&gt;
|0x08&lt;br /&gt;
|fcart&lt;br /&gt;
|allows a user to flash the 256K Flast Cart with 8kb prepared blocks. See [[CartFlasher|this for usage]]&lt;br /&gt;
|-&lt;br /&gt;
|0x49&lt;br /&gt;
|0x09&lt;br /&gt;
|&#039;&#039;&#039;free&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x4A&lt;br /&gt;
|0x0A&lt;br /&gt;
|help&lt;br /&gt;
|text help on screen for superbasic programming&lt;br /&gt;
|-&lt;br /&gt;
|0x4B to 0x4E&lt;br /&gt;
|0x0B to 0x0E&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x4F&lt;br /&gt;
|0x0F&lt;br /&gt;
|wget&lt;br /&gt;
|web get, works only for gen1 K and Jr equipped with a feather wifi board&lt;br /&gt;
|-&lt;br /&gt;
|0x50 to 0x56&lt;br /&gt;
|0x10 to 0x16&lt;br /&gt;
|fm&lt;br /&gt;
|f/manager - a rather feature rich file manipulation, program launcher and memory exploration software&lt;br /&gt;
|-&lt;br /&gt;
|0x57&lt;br /&gt;
|0x17&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x58 to 0x5B&lt;br /&gt;
|0x18 to 0x1B&lt;br /&gt;
|mless&lt;br /&gt;
|moreorless - a text editor. See [[Moreorless|here for more information.]]&lt;br /&gt;
|-&lt;br /&gt;
|0x5D to 0x7B&lt;br /&gt;
|0x1D to 0x3B&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x7C to 0x7F&lt;br /&gt;
|0x3C to 0x3F&lt;br /&gt;
|microkernel&lt;br /&gt;
|the microkernel, gadget&#039;s masterpiece used by many programs&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Block: each block of flash memory is 8kb is size&lt;br /&gt;
&lt;br /&gt;
To reprogram the flash, you can start with the [https://github.com/FoenixRetro/f256-firmware/releases official firmware releases in this github.] &lt;br /&gt;
&lt;br /&gt;
This repo is part the [https://github.com/FoenixRetro FoenixRetro] Github organisation which in turn is an attempt to gather forks of all projects which are part of the firmware and other resources relevant for the Foenix F256 new retro computers.&lt;br /&gt;
&lt;br /&gt;
There are now two firmware loads available: Gen1 - for K and Jr and Gen2 - for K2 and Jr2. The only difference between these loads is the superbasic part of the firmware, in order to have a properly identified superbasic startup screen that reflects the exact computer and generation in the logo.&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Firmware&amp;diff=38342</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Firmware&amp;diff=38342"/>
		<updated>2026-01-01T15:25:59Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: better description of the contents and various desc improvements&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Foenix F256K, Jr., K2 and Jr2 computers contain 512K of flash memory which is intended to store software which should be available to the user without any media like SD-cards or IEC drives present. Think of it like a space traditionally occupied by ROM chips of 80&#039;s computers containing critical, often used programs and routines, but instead of being very rarely updated with scarce ROM chip revisions, it can be quickly updated with firmware revisions using the FoenixMgr python scripts.  &lt;br /&gt;
&lt;br /&gt;
This collection of software can be changed by the user by simply reprogramming the flash &amp;quot;ROM&amp;quot;. At the moment (2025+) the following applications are stored in flash as a default loadout: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Collection of firmware programs as of firmware release version 2025.13&lt;br /&gt;
!Absolute Block* in Memory Map&lt;br /&gt;
!Block* Offset in onboard Flash&lt;br /&gt;
!Name of program&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x40&lt;br /&gt;
|0x00&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;reserved&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x41&lt;br /&gt;
|0x01&lt;br /&gt;
|xdev&lt;br /&gt;
|trampoline program meant to react to developper scripts from [[FoenixMgr]]: pcopy, runpgz, runpgx&lt;br /&gt;
|-&lt;br /&gt;
|0x42 to 0x45&lt;br /&gt;
|0x02 to 0x05&lt;br /&gt;
|superbasic&lt;br /&gt;
|if xdev has nothing to react to, superbasic is your default startup program&lt;br /&gt;
|-&lt;br /&gt;
|0x46&lt;br /&gt;
|0x06&lt;br /&gt;
|dos&lt;br /&gt;
|minimalistic file management and info shell&lt;br /&gt;
|-&lt;br /&gt;
|0x47&lt;br /&gt;
|0x07&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x48&lt;br /&gt;
|0x08&lt;br /&gt;
|fcart&lt;br /&gt;
|allows a user to flash the 256K Flast Cart with 8kb prepared blocks. See [[CartFlasher|this for usage]]&lt;br /&gt;
|-&lt;br /&gt;
|0x49&lt;br /&gt;
|0x09&lt;br /&gt;
|&#039;&#039;&#039;free&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x4A&lt;br /&gt;
|0x0A&lt;br /&gt;
|help&lt;br /&gt;
|text help on screen&lt;br /&gt;
|-&lt;br /&gt;
|0x4B to 0x4E&lt;br /&gt;
|0x0B to 0x0E&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x4F&lt;br /&gt;
|0x0F&lt;br /&gt;
|wget&lt;br /&gt;
|web get, works only for gen1 K and Jr equipped with a feather wifi board&lt;br /&gt;
|-&lt;br /&gt;
|0x50 to 0x56&lt;br /&gt;
|0x10 to 0x16&lt;br /&gt;
|fm&lt;br /&gt;
|f/manager - a rather feature rich file manipulation, program launcher and memory exploration software&lt;br /&gt;
|-&lt;br /&gt;
|0x57&lt;br /&gt;
|0x17&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x58 to 0x5B&lt;br /&gt;
|0x18 to 0x1B&lt;br /&gt;
|mless&lt;br /&gt;
|moreorless - a text editor. See [[Moreorless|here for more information.]]&lt;br /&gt;
|-&lt;br /&gt;
|0x5D to 0x7B&lt;br /&gt;
|0x1D to 0x3B&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;free&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x7C to 0x7F&lt;br /&gt;
|0x3C to 0x3F&lt;br /&gt;
|microkernel&lt;br /&gt;
|the microkernel, gadget&#039;s masterpiece used by many programs&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Block: each block of flash memory is 8kb is size&lt;br /&gt;
&lt;br /&gt;
To reprogram the flash, you can start with the [https://github.com/FoenixRetro/f256-firmware/releases official firmware releases in this github.] &lt;br /&gt;
&lt;br /&gt;
This repo is part the [https://github.com/FoenixRetro FoenixRetro] Github organisation which in turn is an attempt to gather forks of all projects which are part of the firmware and other resources relevant for the Foenix F256 new retro computers.&lt;br /&gt;
&lt;br /&gt;
There are now two firmware loads available: Gen1 - for K and Jr and Gen2 - for K2 and Jr2. The only difference between these loads is the superbasic part of the firmware, in order to have a properly identified superbasic startup screen that reflects the exact computer and generation in the logo.&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_6502&amp;diff=38316</id>
		<title>Software for 6502</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Software_for_6502&amp;diff=38316"/>
		<updated>2025-12-28T04:36:20Z</updated>

		<summary type="html">&lt;p&gt;1BitFeverDreams: /* Music */ cozy midi v2.4 update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note that when an hex address is given, it&#039;s meant to instruct as to which address to bload or to send (ie foenixmgr python script) the program (ie a .bin file) to before running it. For extra help on how to run .bin files and almost every possible scheme that has to be used to run program, you can consult this video that&#039;s also part of [[Getting Started]], this one: https://www.youtube.com/watch?v=0ShFv89KGDs&lt;br /&gt;
&lt;br /&gt;
Many download links are posts in the main [https://discord.gg/9vjUEGgcUS Foenix Retro Systems discord server] which will require you to join in order to get to them.&lt;br /&gt;
&lt;br /&gt;
A [[Getting Started#Demos Archive|Demo Archive]] was put together in September 2023 to get ready to show to youtubers, some of these are linked once more, in this page.   &lt;br /&gt;
&lt;br /&gt;
There&#039;s also the Foenix Marketplace website maintained by EMWhite with its own collection of articles and software http://apps.emwhite.org/foenixmarketplace/.  &lt;br /&gt;
&lt;br /&gt;
===== Curated SD card collection of games, demos, utilities =====&lt;br /&gt;
Here is a download link to a zip file meant to be extracted into the root of an SD card: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
&lt;br /&gt;
Best to wipe out your SD card and start anew with the contents of this extracted to root. Micah&#039;s file manager doesn&#039;t like long lists of files so it really is best to not overdo it. I tried to minimize the files in root, but I couldn&#039;t for everything.&lt;br /&gt;
&lt;br /&gt;
Open the readme.txt file with moreorless to see some instructions about the collection. Best to run /- fm first, then open the readme.txt from it&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|F256-GraphicToolkit&lt;br /&gt;
|Sprite editor, Tilemap editor, Font editor + misc tools&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/econtrerasd/F256-GraphicToolkit&lt;br /&gt;
|-&lt;br /&gt;
|F256 f/term&lt;br /&gt;
|Terminal emulator for F256K and Jr with classic (flat) memory load&lt;br /&gt;
|Micah&lt;br /&gt;
| - fterm.pgZ or use f/manager&lt;br /&gt;
|https://github.com/WartyMN/F256-terminal/blob/main/release/fterm.pgZ&lt;br /&gt;
|-&lt;br /&gt;
|FoenixTarot&lt;br /&gt;
|Tarot card readings in SuperBasic&lt;br /&gt;
|Mike&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/mcassera/FoenixTarot/tree/main&lt;br /&gt;
|-&lt;br /&gt;
|Forthf256&lt;br /&gt;
|Forth implementation&lt;br /&gt;
|Vasyl&lt;br /&gt;
|pgz in its forth/ folder&lt;br /&gt;
|https://github.com/VasylTsv/ForthX16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Demos ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|badapple&lt;br /&gt;
|A 80x60 textmode port of Bad Apple, uses the VS1053b for quality mp3 audio. Needs a Jr2 or K2!&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz*&lt;br /&gt;
|*unzip badapple.zip into the root of your SD card. If done right, the 3 files within will be in the demos/ folder. The program expects its data file there when it runs. https://github.com/Mu0n/F256MiscGoodies/blob/main/apps/badapple.zip&lt;br /&gt;
|-&lt;br /&gt;
|balls&lt;br /&gt;
|Draw a good quantity of multiplexed sprites, fast. Balls bouncing around&lt;br /&gt;
|celton&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/FoenixRetro/demos/blob/main/MultiplexedSprites.md&lt;br /&gt;
|-&lt;br /&gt;
|F256Archon&lt;br /&gt;
|Splash screen intro, plays MIDI using the SAM2695, requires a K2 or Jr2&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256Archon/releases&lt;br /&gt;
|-&lt;br /&gt;
|f256_life&lt;br /&gt;
|An implementation of Conway&#039;s game of life&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_life&lt;br /&gt;
|-&lt;br /&gt;
|F256 Mandelbrot&lt;br /&gt;
|Draws Mandelbrot set fast (5 mins) using coprocessor math. Allows to zoom into the set.&lt;br /&gt;
|mgr42&lt;br /&gt;
|uses basic loader&lt;br /&gt;
|https://github.com/rmsk2/F256_Mandelbrot&lt;br /&gt;
|-&lt;br /&gt;
|F256ShowCase&lt;br /&gt;
|Shows sliding tiling graphics, moves with joystick&lt;br /&gt;
|eriktier&lt;br /&gt;
|$0000&lt;br /&gt;
|https://github.com/pig-games/F256Showcase&lt;br /&gt;
|-&lt;br /&gt;
|fnxmas23 &lt;br /&gt;
|PSG mod music, scrolling text, sound effects, must see demo!&lt;br /&gt;
|dwsJason and digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/apps/xmas24_k2.pgz revised version that can run on wave 2 Jr2 and K2 as well&lt;br /&gt;
|-&lt;br /&gt;
|foenixmas23&lt;br /&gt;
|Xmas 2023 demo with SID music from the classic 1983 C64 xmas demo&lt;br /&gt;
|EMWhite&lt;br /&gt;
|uses basic loader&lt;br /&gt;
|http://apps.emwhite.org/shared-files/815/?foenixmas23.zip&lt;br /&gt;
|-&lt;br /&gt;
|livingworlds&lt;br /&gt;
|Living Worlds, a port of a color cycling by Mark Ferrari, ported here on the F256 by haydenkale&lt;br /&gt;
|haydenkale&lt;br /&gt;
|$0000&lt;br /&gt;
|https://github.com/clandrew/livingworlds/tree/e4532e0d530b76ccb90368fdf5ad10bfa2deeb12&lt;br /&gt;
|-&lt;br /&gt;
|mandel&lt;br /&gt;
|Will draw a mandelbrot set in 3 hours, more useful as a stability test than a useful fractal program&lt;br /&gt;
|Mu0n&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles?tab=readme-ov-file#fractal&lt;br /&gt;
|-&lt;br /&gt;
|wormhole&lt;br /&gt;
|Shows a fast wireframe animation of a wormhole&lt;br /&gt;
|haydenkale&lt;br /&gt;
|pgz or bin at $0000&lt;br /&gt;
|https://github.com/clandrew/wormhole?tab=readme-ov-file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|bbombers&lt;br /&gt;
|Boulder Bombers (Alpha-2)  Clone of Canyon Bombers&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/BoulderBombers&amp;lt;nowiki/&amp;gt;https://github.com/scttgs0/BoulderBombers/releases/tag/alpha_2&lt;br /&gt;
|-&lt;br /&gt;
|Bombsweeper&lt;br /&gt;
|Bomb sweeper port&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/855689509520932885/1196352934083035156&lt;br /&gt;
|-&lt;br /&gt;
|Cosmic&lt;br /&gt;
|Shoot &#039;em up&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discordapp.com/channels/691915291721990194/1054250238308790342/1175982979537969214&lt;br /&gt;
|-&lt;br /&gt;
|F256-Trek&lt;br /&gt;
|Updated Trek, with modern F256 Graphics&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|[https://github.com/econtrerasd/Trek-F256/releases/tag/v1.0 https://github.com/econtrerasd/Trek-F256/releases]&lt;br /&gt;
|-&lt;br /&gt;
|F256 two to the power of eleven&lt;br /&gt;
|Port of the puzzle game of 2048&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/F256_2048&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|fillerup&lt;br /&gt;
|Fill &#039;er Up (WIP)&lt;br /&gt;
Qix-like game&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/Fill-er-up&lt;br /&gt;
|-&lt;br /&gt;
|FusionDrive&lt;br /&gt;
|An outrun type game that also plays a MIDI soundtrack&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|wip v0.2, can use a NES pad #1 to move around, or left/right arrow keys currently https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
|-&lt;br /&gt;
|jewelkeeper&lt;br /&gt;
|Sokoban port&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/raw/refs/heads/main/apps/jewelkeeper.pgz&amp;lt;nowiki/&amp;gt;You can now specify a level file when loading the game &amp;lt;code&amp;gt;/- jewelkeeper.pgz &amp;lt;levels.txt&amp;gt;&amp;lt;/code&amp;gt;.  Find more levels at https://www.sourcecode.se/sokoban/levels.php.  Keep in mind the maximum level dimension is 20x15, anything larger will be ignored&lt;br /&gt;
|-&lt;br /&gt;
|Jr Wördl&lt;br /&gt;
|port of Wordle&lt;br /&gt;
|AgeAgeEye&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/ageageeye/Superbasic-F256Jr-examples&lt;br /&gt;
|-&lt;br /&gt;
|kartdemo&lt;br /&gt;
|Kart racing game&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225217654487253094/1228246780840513556&lt;br /&gt;
|-&lt;br /&gt;
|Lair of the Lich King&lt;br /&gt;
|Rogue like dungeon crawler. Demo has 3 levels; full has 25+&lt;br /&gt;
|Micah&lt;br /&gt;
| - lkdemo/lk.pgz&lt;br /&gt;
|[https://discord.com/channels/691915291721990194/1230670413361844244/1317256215566487593 1.0 Beta 19 Demo]&lt;br /&gt;
|-&lt;br /&gt;
|livewire&lt;br /&gt;
|Livewire (WIP)&lt;br /&gt;
Tempest-like game&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/Livewire&lt;br /&gt;
|-&lt;br /&gt;
|Maze-Munch&lt;br /&gt;
|Pac-Man clone&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/Maze-Munch&lt;br /&gt;
|-&lt;br /&gt;
|pdefense&lt;br /&gt;
|Planetary Defense (WIP)&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgx&lt;br /&gt;
mouse&lt;br /&gt;
atari joystick&lt;br /&gt;
|https://github.com/scttgs0/PlanetaryDefense&lt;br /&gt;
|-&lt;br /&gt;
|Shanghai/Mahjongg&lt;br /&gt;
|A clone of Shanghai. Also known as Mahjongg&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz or KUP&lt;br /&gt;
mouse needed&lt;br /&gt;
|https://github.com/rmsk2/f256_mahjong&lt;br /&gt;
|-&lt;br /&gt;
|Ski-Jr&lt;br /&gt;
|Ski game downhill&lt;br /&gt;
|digarok&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/digarok/superbasic-traveler/blob/main/ski-jr.bas&lt;br /&gt;
|-&lt;br /&gt;
|Track &amp;amp; Field&lt;br /&gt;
|Olympic Game by Konami (WIP)&lt;br /&gt;
|Scott (xDraconian)&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick or keyboard&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tetris&lt;br /&gt;
|Good old 80&#039;s game&lt;br /&gt;
|Daniel Tremblay (Grenouye)&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick or keyboard&lt;br /&gt;
|https://github.com/dtremblay/c256-tetris/tree/f256k&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #01 - April 6th/7th 2024 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|15puzzle&lt;br /&gt;
|Number sort puzzle&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_15puzzle/releases&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Flight Simulator&lt;br /&gt;
|flying simulator&lt;br /&gt;
|sduensin&lt;br /&gt;
|pgz&lt;br /&gt;
|https://cdn.discordapp.com/attachments/1225481966200029286/1227764847819620454/shotel.pgz&lt;br /&gt;
|-&lt;br /&gt;
|frisbee&lt;br /&gt;
|Frisbee throw past sport game&lt;br /&gt;
|dwsJason&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dwsJason/f256/blob/develop/merlin32/frisbee/frisbee.pgz&lt;br /&gt;
|-&lt;br /&gt;
|Impasse&lt;br /&gt;
|Shoot &#039;em up&lt;br /&gt;
|digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225481966200029286/1227075699895046235&lt;br /&gt;
|-&lt;br /&gt;
|soccur&lt;br /&gt;
|mutliplayer game of soccer&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|executable:https://discord.com/channels/691915291721990194/1225481966200029286/1226808228948611184&lt;br /&gt;
source code:&lt;br /&gt;
https://discord.com/channels/691915291721990194/1225481966200029286/1226812472069980232&lt;br /&gt;
|-&lt;br /&gt;
|Trek&lt;br /&gt;
|port of classic Star Trek game&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://discord.com/channels/691915291721990194/1225481966200029286/1226727849944289341&lt;br /&gt;
|-&lt;br /&gt;
|Typing Star&lt;br /&gt;
|typing reaction game&lt;br /&gt;
|haydenkale&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/clandrew/typestar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game Jam #02 - October 25th-November 1st 2024 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Bach&#039;s MIDI Hero&lt;br /&gt;
|Free MIDI/PSG play + note play tutorial&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
the MIDI feature requires a F256K2 or F256Jr2; a legacy PSG option also allows F256K and F256Jr to still hear it. Optionally uses a MIDI in controller plugged in.&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles/releases/download/v1.2/BachHero.pgz&lt;br /&gt;
|-&lt;br /&gt;
|f256_snake&lt;br /&gt;
|&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz. Use cursor keys, Atari joystick or SNES pad to play&lt;br /&gt;
|https://github.com/rmsk2/f256_snake&lt;br /&gt;
|-&lt;br /&gt;
|fnxsnake&lt;br /&gt;
|&lt;br /&gt;
|silk-neon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/ksiondag/fnxsnake&lt;br /&gt;
|-&lt;br /&gt;
|The Hallow&lt;br /&gt;
|&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/FoenixGameJamOct2024&lt;br /&gt;
|-&lt;br /&gt;
|Halloween Birthday&lt;br /&gt;
|&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/GameJam2024_F256K&lt;br /&gt;
|-&lt;br /&gt;
|Haunted Mansion&lt;br /&gt;
|&lt;br /&gt;
|digarok&lt;br /&gt;
|superbasic&lt;br /&gt;
|https://github.com/digarok/fnxgamejam-haunted-mansion&lt;br /&gt;
|-&lt;br /&gt;
|Kooyan&lt;br /&gt;
|&lt;br /&gt;
|Grenouye&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dtremblay/kooyan.git&lt;br /&gt;
|-&lt;br /&gt;
|Spooky Run&lt;br /&gt;
|&lt;br /&gt;
|dwsJason&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/dwsJason/spooky&lt;br /&gt;
|-&lt;br /&gt;
|Trick or Treat&lt;br /&gt;
|&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/TrickOrTreat&lt;br /&gt;
|-&lt;br /&gt;
|Ultima III - Exodus&lt;br /&gt;
|port&lt;br /&gt;
|Minstrel Dragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/minstreldragon/F256_Ultima_3&lt;br /&gt;
|-&lt;br /&gt;
|Warlock&lt;br /&gt;
|remake of 68000 game&lt;br /&gt;
|xDraconian&lt;br /&gt;
|pgz&lt;br /&gt;
atari joystick&lt;br /&gt;
DOWN=change_level&lt;br /&gt;
UP=jump&lt;br /&gt;
UP-LEFT=leap&lt;br /&gt;
UP-RIGHT=leap&lt;br /&gt;
|https://github.com/scttgs0/Foenix_GameJam_Oct2024&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Game Jam #03 - April 18th-April 27th 2025 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Arcade Shanghai v1.2&lt;br /&gt;
|Shanghai clone&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic, keep the .bas program in root, the rest in the provided ashanghai/ folder&lt;br /&gt;
|https://github.com/econtrerasd/ashanghai/releases&lt;br /&gt;
|-&lt;br /&gt;
|Bawk Bawk Cluck Cluck&lt;br /&gt;
|Chicken themed platformer&lt;br /&gt;
|beethead&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/noyen1973/FoenixGameJamApr2025&lt;br /&gt;
|-&lt;br /&gt;
|BitLadder&lt;br /&gt;
|Shoot &#039;Em Up&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz. For full sound compatibility, a Jr2 or K2 is needed. &lt;br /&gt;
Uses 4 sound chips! (PSG, SID, OPL3, MIDI)&lt;br /&gt;
|https://mu0n.itch.io/bitladder&lt;br /&gt;
|-&lt;br /&gt;
|F256_Commando&lt;br /&gt;
|Commando port&lt;br /&gt;
|SprySloth&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/cmassat/F256_Commando&lt;br /&gt;
|-&lt;br /&gt;
|F256_LodeRunner&lt;br /&gt;
|Lode Runner port&lt;br /&gt;
|Minstrel Dragon&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/minstreldragon/F256_Loderunner/releases&lt;br /&gt;
|-&lt;br /&gt;
|Mahjong&lt;br /&gt;
|Shangai clone&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/f256_mahjong/releases&lt;br /&gt;
|-&lt;br /&gt;
|Quarth&lt;br /&gt;
|Block placement arcade game&lt;br /&gt;
|Grenouye&lt;br /&gt;
|pgz&lt;br /&gt;
|https://grenouye.itch.io/f256-quarth&lt;br /&gt;
|-&lt;br /&gt;
|Skee(ster)-Ball&lt;br /&gt;
|&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/skeeball256/tree/main&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Music ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|cozyMIDI&lt;br /&gt;
|Plays a SMF with the SAM2695 or VS1053b &lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|cozyMIDI v2.4 can open and play type 0 and type 1 standard MIDI files (SMF)&lt;br /&gt;
needs a Jr2 or K2&lt;br /&gt;
with a 2x core at https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
run operation 1: just as itself, it will force you to pick a midi file in the &#039;midi/&#039; folder /- cozymidi&lt;br /&gt;
&lt;br /&gt;
run operation 2: in f/manager, if you put this as &amp;lt;code&amp;gt;midiplayer.pgz&amp;lt;/code&amp;gt;in the &#039;_apps/&#039; folder, f/manager will open midi file with it when you launch .mid files. &lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/cozymidi.pgz&lt;br /&gt;
|-&lt;br /&gt;
|digestMidi&lt;br /&gt;
|converts .mid to .dim&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|.mid files are slow to load, parse and prepare for a playback. This tool comes in to convert them into a .dim format that strips out unnecessary MIDI commands and sets it up for timer0 time delays. Works with type 0 and type 1 standard midi files. This tools does the conversion and lets you hear the result.&lt;br /&gt;
Find the latest version here: https://github.com/Mu0n/F256MiscGoodies/tree/main/apps&lt;br /&gt;
|-&lt;br /&gt;
|EdInHisLib&lt;br /&gt;
|SID+OPL3 simultaneously&lt;br /&gt;
|beethead, ported from xantax&lt;br /&gt;
|pgz&lt;br /&gt;
|F256 port: https://discordapp.com/channels/691915291721990194/1054249926521016392/1184413356598231120&lt;br /&gt;
original: &amp;lt;nowiki&amp;gt;https://csdb.dk/release/?id=170898&amp;lt;/nowiki&amp;gt;. Not 100% accurate but close.&lt;br /&gt;
|-&lt;br /&gt;
|F256amp&lt;br /&gt;
|mp3, ogg, wav, wma file playback&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|(aka audioplayer.pgz) v2.3 Needs a Jr.2 or K2 since it uses the VS1053b chip.&lt;br /&gt;
For a starter collection of .mp3 and other audio files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
run operation 1: just as itself, it will force you to pick an audio file. it expects a &amp;lt;code&amp;gt;media/mp3/&amp;lt;/code&amp;gt; folder, but it can live without it and peek into the root instead. &lt;br /&gt;
&lt;br /&gt;
run operation 2: with an argument, it will auto-play it: /- f256amp yourmp3file.mp3 &lt;br /&gt;
&lt;br /&gt;
run operation 3:  in f/manager, if you put this as &amp;lt;code&amp;gt;audioplayer.pgz&amp;lt;/code&amp;gt; in the &#039;_apps/&#039; folder. This lets f/manager automatically open up .mp3, .wav, .ogg, .wma that you press enter on.&lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/f256amp.pgz&lt;br /&gt;
|-&lt;br /&gt;
|FireJam&lt;br /&gt;
|all chips, music playing with MIDI in&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v1.2 MIDI in and out capable, it will still partially work with a Jr. (PSG, and SID if you have them), a K (PSG, SID, OPL3) and the newest wave 2 Jr2 and K2 (PSG, SID, OPL3, SAM, VS1053b).&lt;br /&gt;
Best to use with a MIDI in controller, but it&#039;ll be controllable with arrows and space to make notes individually, or the F keys to start beats. https://github.com/Mu0n/F256KsimpleCdoodles/tree/main/NoFussDemos&lt;br /&gt;
|-&lt;br /&gt;
|jrtracker&lt;br /&gt;
|Tracker based in basic and uses the PSG&lt;br /&gt;
(considered obsolete, use tracker2)&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://ptb.discord.com/channels/691915291721990194/1008139105386889346/1188292876984143983&lt;br /&gt;
|-&lt;br /&gt;
|modo&lt;br /&gt;
|MOD player using the PSG&lt;br /&gt;
|dwsJason and digarok&lt;br /&gt;
|pgz&lt;br /&gt;
|https://discordapp.com/channels/691915291721990194/855689509520932885/1190723114661859429&lt;br /&gt;
|-&lt;br /&gt;
|Musik&lt;br /&gt;
|Music piece demo using MIDI&lt;br /&gt;
|Mike&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/mcassera/Musik/blob/main/Musik.PGZ&amp;lt;nowiki/&amp;gt;Musikalisches Würfelspiel&lt;br /&gt;
Requires a Jr2 or K2 since it uses MIDI&lt;br /&gt;
|-&lt;br /&gt;
|opl3snooper&lt;br /&gt;
|playback of VGM files (that use opl2 and opl3) and MIDI in&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v1.0  mainly plays back vgm files, but you can pause it and snoop around the channel instruments and play up to 18 note polyphony with MIDI in. expects a collection in media/vgm/, or it will browse from the root if it can&#039;t find.  &lt;br /&gt;
It can load a .spl (Simple PLaylist) text file, which is one file per line, including their respective paths. &lt;br /&gt;
Requires a Jr2 or K2 with a 2x core to use the extra bank of SRAM.&lt;br /&gt;
For a starter collection of .vgm files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection&lt;br /&gt;
run operation 1: just as itself, it will force you to pick a midi file in the &#039;media/vgm/&#039; folder &lt;br /&gt;
&lt;br /&gt;
run operation 2: in f/manager (v1.1b9 and up), if you put this as &amp;lt;code&amp;gt;vgmplayer.pgz&amp;lt;/code&amp;gt;in the &#039;_apps/&#039; folder, f/manager will open midi file with it when you launch .vgm files. &lt;br /&gt;
&lt;br /&gt;
Program link: https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/opl3snooper.pgz &lt;br /&gt;
|-&lt;br /&gt;
|opl3tweak&lt;br /&gt;
|uses MIDI in, plays 18 channels polyphony in real time to the YMF262 OPL3. Fish for random register values.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v0.1. Can&#039;t save or load instrument definitions yet. Needs a K2 with a MIDI in currently.  https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/opl3tweak.pgz&lt;br /&gt;
Arrows to move around, + and - keys to incr/decr values or type in a hex value directly under the highlighted position.&lt;br /&gt;
|-&lt;br /&gt;
|piano&lt;br /&gt;
|Plays some PSG notes with the keyboard&lt;br /&gt;
|Mu0n&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles?tab=readme-ov-file#pulse-sound-generator-piano&lt;br /&gt;
|-&lt;br /&gt;
|playvgm&lt;br /&gt;
|plays a headless vgm file with OPL3&lt;br /&gt;
|G33kyAndIKnowIt&lt;br /&gt;
|pgx&lt;br /&gt;
|https://github.com/natebarney/playvgm-f256k&lt;br /&gt;
some example music files can be gotten from this post:&lt;br /&gt;
[https://discord.com/channels/691915291721990194/975117322836656138/1220366429640065074 https://discord.com/channels/6][https://discord.com/channels/691915291721990194/975117322836656138/1220366429640065074 91915291721990194/975117322836656138/1220366429640065074]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) open a normal .vgm into a hex editor &amp;lt;nowiki/&amp;gt;and cut out the header bytes from 0x00 to 0x&amp;lt;nowiki/&amp;gt;FF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) run by first using superbasic&#039;s &#039;&#039;&#039;&#039;&#039;bload&#039;&#039;&#039;&#039;&#039; &#039;&#039;&#039;&#039;&#039;&amp;quot;yourmusicfile&amp;quot;, $01000&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
followed by running this program with &#039;&#039;&#039;&#039;&#039;/- playvgm.pgx&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|sidtweak&lt;br /&gt;
|uses MIDI in, plays 6 channels polyphony in real time to the dual SID. Fish for random register values.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|v0.1. Can&#039;t save or load instrument definitions yet. Needs a K2 with a MIDI in currently. https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/sidtweak.pgz&lt;br /&gt;
Arrows to move around, + and - keys to incr/decr values or type in a hex value directly under the highlighted position.&lt;br /&gt;
|-&lt;br /&gt;
|rawsidplayer&lt;br /&gt;
|plays raw PSID files from the HVSC collection, converted by zigreSID&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|(formely psidplayer) v0.2 find rawsidplayer.pgz and a starter .rsd file (raw sid dumps). For a starter collection of .rsd files, check the SD curated collection here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection &lt;br /&gt;
extract sid.zip into a folder /sid/ in the root of your SD card, that&#039;s where psidplayer.pgz will first look to let you pick a file. failing that, it will fall back to the root folder and let you navigate.&lt;br /&gt;
&lt;br /&gt;
program link:&lt;br /&gt;
&lt;br /&gt;
https://github.com/Mu0n/F256KsimpleCdoodles/raw/refs/heads/main/NoFussDemos/rawsidplayer.pgz&lt;br /&gt;
|-&lt;br /&gt;
|tracker2 v1.5&lt;br /&gt;
|Like jrtracker.bas, but using both PSGs&lt;br /&gt;
|contrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/econtrerasd/Tracker2/releases&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Uti&amp;lt;nowiki/&amp;gt;lities ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Descrip&amp;lt;nowiki/&amp;gt;tion&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|basic2text&lt;br /&gt;
|A simple utility for translating Commodore BASIC (all variants) from its native tokenized file format to a text format that can be opened with SuperBASIC. Does not perform any code translation: all adaptation is up to you. &lt;br /&gt;
|Micah&lt;br /&gt;
|pgZ&lt;br /&gt;
|https://github.com/WartyMN/F256-BasText/releases/latest&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|dcopy&lt;br /&gt;
|A tool to copy files from one drive to another or to/from your PC via RS-232 and a nullmodem cable&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz/flash&lt;br /&gt;
|https://github.com/rmsk2/f256_dcopy&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|f/manager&lt;br /&gt;
|A general file utility, launcher, and memory viewing program. Dual-panel file/memory browsers; copy between disks,  between folders on same disk, and from memory to disk and vice versa; delete, rename, and duplicate files; view files as hex or text (with word-wrap); launch applications and known file types; set the RTC clock; search in RAM and flash. Works with internal SD card and IEC devices such as FNX1591 and Commodore 1541. Can be installed in primary flash position ahead of SuperBASIC or DOS, or at a higher location. Can also be run from disk with &amp;quot;- fm.pgz&amp;quot;.&lt;br /&gt;
|Micah&lt;br /&gt;
|pgZ/flash&lt;br /&gt;
|https://github.com/WartyMN/F256-FileManager/releases&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|f256_reset&lt;br /&gt;
|A small utility that lets you reset the machine through this piece of flash software&lt;br /&gt;
|mgr42&lt;br /&gt;
|flash&lt;br /&gt;
|https://github.com/rmsk2/f256_reset&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|fcart&lt;br /&gt;
|A program that allows to write data to flash expansion cartridges &lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz, on-board and cartridge flash&lt;br /&gt;
|https://github.com/rmsk2/cartflash&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|flashcart&lt;br /&gt;
|Allows to wipe a block of flash or write a program to a flash cart, from this basic program from the F256Jr/K&lt;br /&gt;
|redfool.&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Red-Fool/F256_FlashCart/tree/main&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|flashselect&lt;br /&gt;
|Allows to select a program to start from a flash cartridge via a menu&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz, on-board and cartridge flash&lt;br /&gt;
|https://github.com/rmsk2/flashselect&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|fonts&lt;br /&gt;
|A variety of fonts using the standard F256 character set arrangement. Load with the F256 file manager (f/manager), or your own code.&lt;br /&gt;
|Micah&lt;br /&gt;
|(not a program)&lt;br /&gt;
|[https://github.com/WartyMN/Foenix-Fonts/tree/main https://github.com/WartyMN/Foenix-Fonts]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|midiStuff&lt;br /&gt;
|Test program for a F256K2 or F256Jr2 that sends MIDI data to the internal sam2695 dream chip that produces MIDI based audio. Also test a keyboard controller plugged in the MIDI in port.&lt;br /&gt;
|Mu0n&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles/blob/main/README.md#midistuff&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|moreorless&lt;br /&gt;
|A text editor for the Foenix 256 line of computers&lt;br /&gt;
|mgr42&lt;br /&gt;
|pgz&lt;br /&gt;
|https://github.com/rmsk2/moreorless/releases/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pgz2flash&lt;br /&gt;
|A program for your Linux, Windows or MacOS machine to turn any PGZ or SuperBASIC program into a KUP which can be run from cartridge or onboard flash memory&lt;br /&gt;
|mgr42&lt;br /&gt;
|Executable for modern computers&lt;br /&gt;
|https://github.com/rmsk2/pgz2flash&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|sidTester&lt;br /&gt;
|Simple superbasic program that tests out all 3 voices of the SID1 on the Jr (if populated), K, Jr2 and K2. Ported by Mu0n, made by andy on HackJunk.com https://hackjunk.com/2017/11/07/commodore-64-sid-tester/&lt;br /&gt;
|andy&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/Mu0n/F256MiscGoodies/blob/main/apps/sidtester.bas&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|testsuite.bas&lt;br /&gt;
|a series of tests for your F256, video modes and sound chips&lt;br /&gt;
|econtrerasd&lt;br /&gt;
|basic&lt;br /&gt;
|run from the root, https://raw.githubusercontent.com/Mu0n/F256MiscGoodies/refs/heads/main/apps/testsuite.bas&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|wget&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
|&amp;lt;nowiki/&amp;gt;fetches a file from a http address if you have a network connection active. Works with the K and Jr. ESP32 Feather &#039;huzzah&#039; board. Not meant to be used with the K2 and Jr2 Wiznet chip.&lt;br /&gt;
|gadget&lt;br /&gt;
|&amp;lt;nowiki/&amp;gt;pgz/flash&lt;br /&gt;
|https://github.com/ghackwrench/F256_wget&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sample Code ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Program&lt;br /&gt;
!Description&lt;br /&gt;
!Author&lt;br /&gt;
!Notes on running&lt;br /&gt;
!Link&lt;br /&gt;
|-&lt;br /&gt;
|Assembly examples&lt;br /&gt;
|Sample programs for several features of the Foenix F256K and Jr.&lt;br /&gt;
|mgr42&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/rmsk2/Hello_Foenix256_Jr/blob/main/testprogs.md&lt;br /&gt;
|-&lt;br /&gt;
|cc65 example&lt;br /&gt;
|c example code&lt;br /&gt;
|gadget&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/ghackwrench/F256_Jr_Kernel_DOS&lt;br /&gt;
|-&lt;br /&gt;
|digarok basic stuff&lt;br /&gt;
|Lots of basic examples&lt;br /&gt;
|digarok&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/digarok/superbasic-traveler/tree/main&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K asm doodles&lt;br /&gt;
|Some asm examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleASMdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K basic doodles&lt;br /&gt;
|Some basic examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KbasicBASICdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Mu0n&#039;s F256K C doodles&lt;br /&gt;
|Some C examples&lt;br /&gt;
|Mu0n&lt;br /&gt;
|read github&lt;br /&gt;
|https://github.com/Mu0n/F256KsimpleCdoodles&lt;br /&gt;
|-&lt;br /&gt;
|Raúl SQ basic repo&lt;br /&gt;
|F256 SuperBASIC Trigonometry&lt;br /&gt;
|Raúl SQ&lt;br /&gt;
|basic&lt;br /&gt;
|https://github.com/raul-sq/FoenixF256K2&lt;br /&gt;
|-&lt;br /&gt;
|tcp example&lt;br /&gt;
|connects to a server and gets typed in text echoed back to you&lt;br /&gt;
|gadget&lt;br /&gt;
|$2000&lt;br /&gt;
|https://github.com/ghackwrench/F256_example_tcp&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>1BitFeverDreams</name></author>
	</entry>
</feed>