
Senbir
This game is from ldjam.com, which is currently unavailable.
You can try viewing the original page on Web Archive (may not load correctly).
You can try viewing the original page on Web Archive (may not load correctly).
Senbir is a game of sorts about programming a small virtual machine in a custom Assembly language. Your goal? Poke around on your harddrive and run a program from it.
Also worth noting, I still haven't been able to test & verify all the op-codes. Some of them may still be explosive - such as PMOV, which has consistently been the most unpredictable. If anything blows up, and I mean *anything*, let me know so I can try to patch it ASAP, or provide a correction if the problem is that I didn't document it well enough (like with the recent confusion over SETDATA)
It comes with three modes/difficulties, too, meaning you're free to experiment more!
In this mode, the default harddrive contents are literally just a program/"OS" that renders the "WIN!" screen included in the screenshot below.
If the masses believe this should disqualify it from being a Compo entry, I'll gladly change it to Jam. Assuming that's possible once it's published, anyway.
Also worth noting, there is *CURRENTLY* no Mac build released. If you want to play on Mac, well...fire up Wine or similar? Or compile the game yourself? I'll work on getting the Mac build tools installed, but can't guarantee functionality. Modern Unity mac support is finnicky at best.
FINALLY: I built the game entirely in XUbuntu 16.04, so please keep that in mind. Linux Unity makes different Windows builds than Windows Unity. It might be wonky. Also, the Notebook folder in the source code is for use with the Zim desktop wiki, and contains the prettified documentation for everything in source form.
* SOURCE CODE IS AVAILABLE AT GITLAB: https://gitlab.com/CliffracerX/Senbir
* COMPILED BUILDS AT ITCH.IO: https://cliffracerx.itch.io/senbir
2. Version 0.43a - the first major post-ish-LD release. Fix all the bugs. ALL OF EM'! Live on GitLab now, slooowly pushing to Itch.
* Mostly? Just fixes a heap-ton of major bugs I found while playing in Custom mode.
* What are major bugs, you might ask? Areas where the assembler, or op-codes, break down.
* I know it's generally bad form to push bugfix updates, but when the op-codes required to win levels aren't working right? Then we have a problem.
* There were also some op-codes that were literally rendered *defunct* on several levels, such as the extended ``SETDATA`` one. The Assembler itself would wig out and spew broken data when asked to compile one, and the monitor (a major use-case for extended setdata) didn't have any means of making use of the code that was written for extended SETDATA calls. This has since been remedied.
* There's also a DEBUG TOOL now built into the game. For the purposes of Ludum Dare ratings? Don't use the Debug Menu. Once you're done playing to rate? Dig in - it's super helpful.
1. It lets you pause the processor, so you can step along manually.
2. It also has a built-in RAM viewer, so you can view up to 32 addresses in bit form. The program counter's current address is also highlighted.
3. As well as a Register viewer that you can turn on to see the status of all 16 registers, either parsed into integers, or in their raw 32-bit form.
4. Finally, it comes with a DISASSEMBLER (WIP) that lets you, well, disassemble the code in RAM. Similarly, it lets you see it on an address-by-address basis, and automatically highlights whatever the program counter's currently on.
5. Oh, and as a bonus, it also supports viewing drive data (similar to the RAM viewer), as well as disassembling its contents. If you want to see what the win program looks like, this is your way to do so.
* Misc. other fixes, such as making the color-selector menu on the Custom options screen a bit more usable. In my install at least, you still can't scroll with the scrollwheel (for some reason), and the scrollbar was basically invisible for some reason. That made customizing monitors that use more than 2 bits of color a *wee* bit tricky.
3. Version 0.43a.1 - *forgets to add the ability to select the ruddy keyboard*
* Press F while looking at the in-game keyboard to switch to, well, Keyboard Mode.
* Right Control (or Escape) frees you from it.
* Similarly, F can be used to activate the mouse, and RControl/Escape to free from it.
* Left Alt can also be held down to temporarily free yourself from Mouse Mode, so you can activate the mouse, then the keyboard, then look at the screen.
4. Version 0.43a.2 - More bugfixes! Grab it now, and pray there aren't anymore bugs! My internet's not gonna last forever.
* A lot of trial-and-error tweaks to PMOV trying to get it to work consistently and functionally. Not much luck yet.
* Made the monitor GETDATA function work as expected. It returns the *exact* command used to set the color at a given pixel. Thing is, there was nothing to set the commands at runtime, or reset them after reboots. This lead to a lot of yelling at my IRL monitor until I realized why. Oops.
* Probably other stuff I forgot!
WARNING: ABOUT RATING
I've managed to push a bugfix update that should deal with some of the most glaring/game-breaking bugs. BUT. It also includes the DEBUG TOOL, a new feature added so I (and any other brave souls interested in developing for the TC-06) can have an easier time, well, debugging. It includes a RAM viewer, disassembler, register views, etc. *DO NOT USE THE DEBUG TOOL DURING YOUR STINT WITH THE GAME FOR RATING PURPOSES.* If you're interested in playing more after? Use it! It's great! But it should be treated as though it doesn't exist for rating purposes, being a new feature & all.Also worth noting, I still haven't been able to test & verify all the op-codes. Some of them may still be explosive - such as PMOV, which has consistently been the most unpredictable. If anything blows up, and I mean *anything*, let me know so I can try to patch it ASAP, or provide a correction if the problem is that I didn't document it well enough (like with the recent confusion over SETDATA)
ABOUT
It's the most sandboxy game I've ever created for Ludum Dare, and I'm trying to embrace that fact. Senbir gives you a *fully featured* virtual computer/virtual machine, with its own form of assembly language, its own RAM, monitor, harddrive, keyboard, etc. You're free to program ANYTHING in it - once you've gotten to grips with the TC-06 assembly language & architecture, you're set to build whatever your imagination demands of you!It comes with three modes/difficulties, too, meaning you're free to experiment more!
ORIGINAL MODE
The original mode designed to fully embrace the theme of Ludum Dare 42 - you are RUNNING OUT OF SPACE. Your computer only has 128 bytes of RAM - 32 memory addresses. Your drive isn't much bigger - only 1 kilobyte, or 256 addresses! Your monitor is tiny, too, clocking in at 16 (ginormous) pixels wide & 8 tall, with only 4 colors available.In this mode, the default harddrive contents are literally just a program/"OS" that renders the "WIN!" screen included in the screenshot below.
EXTENDED MODE
This mode is designed to still keep you pretty severely limited, but not by quite so painfully much. Your computer's up to 1KB of RAM (256 addresses/1024 bytes), the drive has 8KB (a whopping 2048 addresses/8192 bytes), though the monitor stays the same resolution, just with orange colors 2 & 3 instead of the green of the original. Its drive contents also remain unchanged - just a tiny program to render a WIN screen.CUSTOM MODE
This mode is much more up to you - you can select any amount of RAM (up to 16MB, due to limitations in the language), any size of harddrive (up to 16GB, don't do that unless you have an UNGODLY amount of IRL RAM), and change the monitor stats a good deal to make it your own. If your goal is to make something BIG, like an operating system, or a more advanced game, you should do it here, and share the custom preset file along with your disk image, so other players can jump straight in.DISCLAIMER
I'd been screwing around with developing the raw *IDEA* for the processor architecture for a few days before Ludum Dare, and the actual ingame implementation code was built from a half-finished Unity implementation I was working on for about ~24 hours before Ludum Dare. The full implementation & architecture documentation are available at the provided Gitlab link, as well as a copy of the docs being included in every downloaded game for obvious reasons.If the masses believe this should disqualify it from being a Compo entry, I'll gladly change it to Jam. Assuming that's possible once it's published, anyway.
Also worth noting, there is *CURRENTLY* no Mac build released. If you want to play on Mac, well...fire up Wine or similar? Or compile the game yourself? I'll work on getting the Mac build tools installed, but can't guarantee functionality. Modern Unity mac support is finnicky at best.
FINALLY: I built the game entirely in XUbuntu 16.04, so please keep that in mind. Linux Unity makes different Windows builds than Windows Unity. It might be wonky. Also, the Notebook folder in the source code is for use with the Zim desktop wiki, and contains the prettified documentation for everything in source form.
DOWNLOADS (BECAUSE SOMETHING EXPLODED?
* SOURCE CODE IS AVAILABLE AT GITLAB: https://gitlab.com/CliffracerX/Senbir
* COMPILED BUILDS AT ITCH.IO: https://cliffracerx.itch.io/senbir
CHANGELOGS
1. Version 0.42a - the version originally published for Ludum Dare. Filled with potentially catastrophic/game-breaking bugs.2. Version 0.43a - the first major post-ish-LD release. Fix all the bugs. ALL OF EM'! Live on GitLab now, slooowly pushing to Itch.
* Mostly? Just fixes a heap-ton of major bugs I found while playing in Custom mode.
* What are major bugs, you might ask? Areas where the assembler, or op-codes, break down.
* I know it's generally bad form to push bugfix updates, but when the op-codes required to win levels aren't working right? Then we have a problem.
* There were also some op-codes that were literally rendered *defunct* on several levels, such as the extended ``SETDATA`` one. The Assembler itself would wig out and spew broken data when asked to compile one, and the monitor (a major use-case for extended setdata) didn't have any means of making use of the code that was written for extended SETDATA calls. This has since been remedied.
* There's also a DEBUG TOOL now built into the game. For the purposes of Ludum Dare ratings? Don't use the Debug Menu. Once you're done playing to rate? Dig in - it's super helpful.
1. It lets you pause the processor, so you can step along manually.
2. It also has a built-in RAM viewer, so you can view up to 32 addresses in bit form. The program counter's current address is also highlighted.
3. As well as a Register viewer that you can turn on to see the status of all 16 registers, either parsed into integers, or in their raw 32-bit form.
4. Finally, it comes with a DISASSEMBLER (WIP) that lets you, well, disassemble the code in RAM. Similarly, it lets you see it on an address-by-address basis, and automatically highlights whatever the program counter's currently on.
5. Oh, and as a bonus, it also supports viewing drive data (similar to the RAM viewer), as well as disassembling its contents. If you want to see what the win program looks like, this is your way to do so.
* Misc. other fixes, such as making the color-selector menu on the Custom options screen a bit more usable. In my install at least, you still can't scroll with the scrollwheel (for some reason), and the scrollbar was basically invisible for some reason. That made customizing monitors that use more than 2 bits of color a *wee* bit tricky.
3. Version 0.43a.1 - *forgets to add the ability to select the ruddy keyboard*
* Press F while looking at the in-game keyboard to switch to, well, Keyboard Mode.
* Right Control (or Escape) frees you from it.
* Similarly, F can be used to activate the mouse, and RControl/Escape to free from it.
* Left Alt can also be held down to temporarily free yourself from Mouse Mode, so you can activate the mouse, then the keyboard, then look at the screen.
4. Version 0.43a.2 - More bugfixes! Grab it now, and pray there aren't anymore bugs! My internet's not gonna last forever.
* A lot of trial-and-error tweaks to PMOV trying to get it to work consistently and functionally. Not much luck yet.
* Made the monitor GETDATA function work as expected. It returns the *exact* command used to set the color at a given pixel. Thing is, there was nothing to set the commands at runtime, or reset them after reboots. This lead to a lot of yelling at my IRL monitor until I realized why. Oops.
* Probably other stuff I forgot!