Development Diary: A couple 6502 Assembler bug fixes

A couple 6502 Assembler bug fixes
kveroneau(Game Creator)
April 3, 2017, 3:40 a.m.

As I was testing out some previously created abilities for the assembler, namely the #>@label and #<@label functions, I noticed that it was a bit broken at times. These bugs have now been resolved.

I am starting to write a basic unit test program for the 6502 assembler and VM which will be used to test and confirm various operations and abilities available to the players. I am also working on a basic 6502 Monitor program which can be used to peek and poke memory locations, as well as to read and write from the block device. This monitor can be used by beta players to test out current 6502 VM features without needing a full OS being completed.

I also updated the VM connector code so that now alternate VM daemons are fully supported can be easily plugged into the game engine with no further code modifications. All that needs to be done, is the daemon server program needs to be started, and if the new VM should be exposed to players, a new connector and machine type needs to be created through the website administrator. Otherwise, during the @mkhost mod command, a new parameter can be used to directly select a VM connector to use for that specific host on a host-by-host basis. The @prov command would then properly run the provisioner against the host using that VM connector.

This now opens the door to say creating a Newbie CPU type in the game, where there is no machine code nor assembly to learn or understand. This could potentially allow more casual players to play against advanced hackers in the same game world. However, having a more advanced 6502 VM can provide players with more fine-grained control over their host and how it operates right down to each location in memory. Whereas a Newbie CPU type would be a bit more hardcoded and easy to use. This could be thought of say using a closed sourced operating system like Windows, where you don't have super fine-grained control over everything and configuring servers and firewalls is relatively painless. Some users don't really care about the nitty gridy underworkings of a computer and just want to enjoy a hacking simulation game, while other players may prefer a very complex experience where they have control over every single detail.

Basically, what I am saying here, is that Hacker's Edge will soon be-able to tailor to most player types. If you don't care about machine code and 6502 assembly, that's fine. You can still enjoy Hacker's Edge in a more casual experience. If you later on feel that you want a bit of a more realistic challenge, then you can dive into the world of machine code and 6502 assembly later on with a new character.

If I do pursue a Newbie CPU alongside the currently supported advanced 6502 VM, the hardcoded commands in the Newbie CPU will allow enough freedom and abilities to hack into not so complex 6502 VMs. There won't be as much fine-grained controls like creating completely custom network packets, but the hardcoded tools will allow the hacking of specially crafted 6502 servers for the purpose of missions.

Anyways, this should be something interesting to look forward to if the 6502 stuff was way over your head, and you were looking for a more casual experience.