All users will need to merge their Minecraft Forum account with a new or existing Twitch account starting October 23rd. You can merge your accounts by clicking here. Have questions? Learn more here.
Dismiss
  • 0

    posted a message on Revolutionary, real 32bit computer in minecraft. Has 8kb ram.
    Quote from archimeti»
    does your CPU work with virtual memory and interrupts ? if not, you're not making an OS, just a program, i'm just sayin :P
    and if your GPU can't draw circle, lines and polygon it's not even a GPU...

    Firstly: An OS can be a VM. Any turing complete machine can run an OS. Not a traditional one, but an OS nonetheless.

    Same with the GPU thing. If it processes graphics, it's a Graphics Processing Unit. The first GPUs were text based in real life, though they weren't really called GPU and rather video controllers. The first "gaming" GPUs in consoles worked on a sprite based system, which don't draw lines and polygons either.

    The formal, real life definitions don't quite apply in Minecraft as strictly. When someone claims to have built a car in minecraft, and they made some crazy complicated moving contraption with command blocks, do you point out that it lacks seatbelts, headlights, etc. and therefore does not classify as a road legal vehicle? No, because that doesn't apply in Minecraft. When someone says " I built an X in Minecraft", they're actually saying "I built a device that is similar to what we know as X in real life", or rather, a simplified version, appropriate to the simplified world of Minecraft. The same applies here.

    Though then again, where do you draw the line? Many claim to have built a PC in minecraft that doesn't actually run programs. Does that count? Perhaps as a PC, but not a a computer. It's complicated.


    Finally, it would sadly seem that this computer project's been abandoned for a while, so there's not much point in arguing about the naming of the components.
    Posted in: Redstone Discussion and Mechanisms
  • 0

    posted a message on Commandore 32: Advanced command block based computer. Programming tutorial now available!
    Quote from c4ooo_redstone»

    I see your uplouder has come back to hunt you :).
    Well its nice to see you and your successes. My computer project has been delayed, so yea. PS You remember me right? :)

    I have no regrets with my uploader program. In fact, it's taught me some lessons in multi-platform development and design. Not the best design, but I'm still glad I did it, and even with its flaws I prefer it over depending on something like MCEdit.
    And yes, I do remember you.
    Quote from coolgboy»
    This is really cool! I only have two problems:



    1. I can't figure out how to use Paint. I assumed you had to use the D-Pad, but I can't seem to get the screen to change to anything except a white dot in the middle of the screen. EDIT: Looking at the tutorial video, I see that my render distance was much too low. I'll try it in 17 chunks and see how that works out.




    2. The program installer doesn't work. I follow the instructions correctly, but the program enters the commands too fast, causing not all of the commands to work, since enter and T are being pressed too fast, causing a "Core system error" whenever I try to boot up the computer. I'm using Linux, but I can get a Windows result if you need one, since my computer has both installed.

    1: Yes, render distance should have an effect. The computer's pretty big, and it won't work if it isn't all loaded.

    2: Yea... that might be a Linux problem. Try it on windows. Also, if you really want to get it working on Linux, load the world on a Minecraft server running in a Terminal window, and download the Commandore SDK and use the server uploading mode, pasting the result into the server. It's a whole lot faster than normal uploading, too! Just a bit tedious to setup.
    Posted in: Redstone Creations
  • 0

    posted a message on Giving an armour stand a mob head and a helmet (or simmilar effect)
    Quote from Maxaxik»
    If you want custom player heads here's a Dragnoz's head generator

    Interesting. The video says it's for a specific snapshot only, and when I attempted to use it the head was a white block, but that was a URL to a player skin, not just the head. I guess I need to find what section goes where in a head texture file...
    Also, it doesn't seem to be using the tags the wiki referred to. Perhaps the wiki refers to the "intended" way to do it, as the head generator you linked uses an unintentional feature that could be removed.
    Posted in: Redstone Discussion and Mechanisms
  • 0

    posted a message on Giving an armour stand a mob head and a helmet (or simmilar effect)
    Hello! I'm trying to create NPCs for a project. This project will be in vanilla except for a custom resource pack. I pretty much have everything planned, but I need them to have different emotions.

    What I was planning to do was use mob heads for each character (there won't be any zombies/skeletons/creepers in the map so it won't look weird), but I need 9 characters and different facial expressions for each. So a workaround could be, re-skin the mob heads to have different emotions, and then put helmets on each (re-skinned to look like hair) that make the characters distinguishable.

    If you've been on the forums for a while, you may notice I've asked a similar question before (at least, I think I did) for my Ace Attorney in MC project. This is... more or less for the same thing, but rather a Visual Novel Engine that could implement more than just AA games.

    My own attempts to solve this:

    • First, last year I used mobs such as skeletons and zombies, re-skinned to look like humans with different expressions, and gave those helmets. This worked, but I wasn't happy with the result (they kept moving around, inconsistent sizes between mobs etc.)
    • Next I tried placing an armour stand (wearing the hair helmet) and copying a player head block where the head's supossed to be. This suprisingly worked, but as expected it's a little out of alignment. The biggest problem I have is that the stand needs to float or sit on a half slab for it to work, and I can't easily move the armour stand as I'd need to move the head too, and keep it in position.
    • I've tried having 2 armour stands (one riding the other, or both on the same spot) however the head and helmet are the same size and overlap. "baby" armour stands are far too small. Perhaps there's a way to make an armour stand that's only slightly bigger?
    Here's what attempt #2 looked like:



    I have noticed, however, that there's a way to make heads which use custom URLs for their skins according to the "skull" entity format entry on Minecraftwiki. I can't get it working. Could someone get me an example of that pointing to an Imgur link, or perhaps to a local file? This would be ideal, as I could just make a whole lot of player heads for each combination of character and expression I need. Preferably an example including how to get that onto an armour stand, I could probably figure it out but I'm not good with JSON.

    TL;DR: I need help with either:

    • Making armour stands that have both helmets and player/mob heads
    • or making lots of custom player heads and putting them on armour stands (without creating 50 or so Minecraft accounts and setting their skins)
    Posted in: Redstone Discussion and Mechanisms
  • 0

    posted a message on Commandore 32: Advanced command block based computer. Programming tutorial now available!
    Quote from javaLuke»
    I would like to report a bug:

    The first time I uploaded a program into the computer, I forgot that I already typed a "t" into chat (but did not hit enter).
    So now every time I upload, that "t" is added at the beginning of every line (eg. "t/scoreboard ...", making them chat messages instead of commands).
    It even adds it when I switch to Notepad++.

    I've tried exiting and re-opening Minecraft and the SDK, deleting and re-extracting the world and SDK, even rebooting my laptop. None of these has fixed the issue.

    Versions:
    Computer: 1.1.1
    SDK: 1.1.2

    Any ideas on how to resolve this would be much appreciated.

    I think what you might be doing is opening the chat menu manually before the upload starts, by pressing T. The uploader assumes the chat menu isn't open when it starts, so it presses T, which would of course type the letter T into chat.

    If that is what you're doing wrong, when you click upload, unpause minecraft and don't press anything, leaving the chat menu closed. After the 3 seconds, it will start automatically opening the chat menu.

    If that isn't what you are doing wrong, I might need more information, like if you changed/re-mapped the controls or are using OSX/Linux, what framerate you are getting in minecraft, and what version of Java you have.
    Posted in: Redstone Creations
  • 0

    posted a message on Commandore 32: Advanced command block based computer. Programming tutorial now available!
    Quote from mstram»
    What's the best way to debug it? I've tried adding 'Say' commands attached to the end-instr-block (28-56-60), to see what's going on.

    That's pretty much how I debugged when I built it. Well, I used tellraw specifically, so I could output the state of the scoreboards at certain times to see if they contained the right value. The system is incredibly timing sensitive: wait 1 tick too long and the data in ROMBuffA/B/C will be cleared as the pipeline prepares the next instruction for execution. That, and many other registers change based on very specific timing parameters, so it's pretty important to not mess up the order.
    Quote from minerguy31»
    The Fibonacci program included with the download doesn't work for me. Here's my version; It's smaller and faster too.



     
    STO 1 0
    DEB 0
    :loop0
    MT1 1 1
    MT2 1 0
    DEB 1
    DEB 0
    IFF 16 loop0
    :exit2

    That's pretty nice. Want me to include it on the OP? Crediting you of course. If you want to give the program a name, e.g. fastfib, let me know.


    Also, I've finally started work on the "how it works" series once again! Due to popular demand, I'm explaining the compiler first, but don't worry, I'll get to how the computer works afterwards. Through recording this video, I found some serious issues with the compiler, some fixing bugs I didn't think were fixable because they were caused by black magic. I believe this is called rubber duck debugging, where you tell someone or something (rubber duck recommended) how your program works, and in the process you find things that don't work as they should. So I accidentally fixed some bugs!



    I probably made some mistakes in this video, if you spot anything weird, please tell me! Also, when I say "a real compiler", this is either how I think a real one does, or how SOME real ones do it (others could of course use different strategies. a BASIC compiler works in a completely different way to a C++ compiler, for example, and most of this probably wouldn't apply to BASIC at all)

    I guess I'll release a new version fixing the bugs later, but I want to first record my Commandore how it works videos so I can find bugs in that one as well.
    Posted in: Redstone Creations
  • 0

    posted a message on [WIP] Happycamper 3-bit Computer
    Err, 23=8, what you need to reach signals from 0 to 15 is a 4 bit computer, as 24=16 (that's 16, 0 to 15 combinations if you include 0)

    Assuming you meant that, I've had that analogue computer idea before as well (using comparators for memory), along with the idea of a focus on IO, like real life microcontrollers. But, as with most ideas I have, I never actually attempted it because of all the other stuff I had to do.

    Anyway, it sounds like a great idea for a first computer! Good luck!
    Posted in: Redstone Creations
  • 0

    posted a message on Let's talk about "The ultimate rail network" [Minecarts]
    I have a station design that I built a year ago that may suit your needs



    Excuse the terrible mic quality, video quality, etc. I should probably re-record that video sometime.

    Anyways, you could make some changes to make this more survival friendly, but the main concept/design seems to do what you need it to. It will take a LOT of rails to do in survival though. You could probably change it to be 1 powered rails every 8 blocks or whatever the optimum number was to save resources, but even then I hope you have an iron golem farm nearby.
    Posted in: Redstone Discussion and Mechanisms
  • 0

    posted a message on Revolutionary, real 32bit computer in minecraft. Has 8kb ram.
    Quote from c4ooo_redstone»
    Any way, as may arch-nemissis, duderent006 is enjoy his fully finished computer....

    Wait, I'm a nemesis now? Well, OK then. I've only ever been the nemesis of the RDF as a whole (now ORE, not sure if that still applies, but I assume it does for now)

    I'm pretty sure I gave you advice for some stuff at some point. I think I even remember you calling me a friend. So...what?

    Aaaanyways, good luck on your computer! Your "hardcoded os" system sounds pretty interesting. I had a project like that, called hardcode OS (super original name, I know) but very quickly abandoned it due to poor planning and it not being practical at the time. I would love to see that old concept in action though!
    Posted in: Redstone Discussion and Mechanisms
  • 0

    posted a message on $100 budget: which programming books should I get?
    So I searched the book I had on Amazon ( http://www.amazon.com/Fundamentals-Data-Structures-Ellis-Horowitz/dp/0929306376/ref=sr_1_1?ie=UTF8&qid=1416324947&sr=8-1&keywords=fundamentals of data structures in c++#customerReviews ) so I could compare reviews, and this was one of the top rated ones:

    span>Unfortunately, I had to purchase this book as part of my data structures class, and everybody in my class agrees it is just a horrible book for undergrad students. Too much mathematical jargon, coded algorithms which often have mistakes in them, and not enough plain english to convey to the reader the idea behind these fundamental concepts. If you want to learn, DO NOT buy this book.

    So, it isn't just me that's completely thrown off with the university level math! Good to know.

    I also got an E-mail that I'm officially in the IOI training camp thing, and they mentioned this:

    span>Candidates are expected to use the computer language C++ for the first training camp. Please familiarise yourself with the language. English is the official (human) language of the IOI, and will be used throughout.

    So yea, new plan: learn C++ ASAP. By the 20th of February, 2015. I know, learning a language with a deadline isn't a good idea, but I don't really have a choice if I want to be part of this.




    It seems "Accelerated C++" is a good choice for learning C++, it seems to consistently pop up on many recommendation lists I've found. If it helps, I'm familiar with C from Arduino already, understand intermediate level OOP (from Java, extend, implement, overriding functions and stuff).

    I'm also thinking of, instead of just learning the language with provided examples, to actually get familiar with it by making something. Perhaps a simple game? I know there's countless "how 2 mak A gam?" threads of people who have no idea what they're doing already, but something small and realistic. Perhaps a basic 2D rougelike. I need to learn algorithms for the Olympiad, and there's plenty of algorithmic challenges in a Rougelike, such as randomly generated rooms, pathfinding, AI, visibility and all the stuff that comes with writing a simple 2D rendering system. Great way to learn standard libraries and objects in C++ too.
    Posted in: Computer Science and Technology
  • 0

    posted a message on $100 budget: which programming books should I get?
    Quote from iLikePHP»
    Google "David Malan Harvard " — he knows basically every freaking language by the looks of it.

    Also, get an external monitor with your money, you'll thank me later when you realise that when programming, >1 monitor is useful as .

    I already have a second monitor, and I can confirm it is super useful. I usually have the smaller one for documentation/google and the program being written, and the larger monitor for writing code. Would be nice to have 3 though, so I could have the program, code and documentation all at the same time. But I'm fine with 2 for now, my GPU only has 1 remaining port and it's HDMI, and none of the old monitors fit that. Perhaps I should get an HDMI-VGA converter? :D

    I didn't find much on "David Malan Harvard", there's only 4 results on amazon and very few on Google as well when looking for a Java book.

    Thanks BC_programming and BKRenz for the book suggestions! I'll have a look at them.
    Posted in: Computer Science and Technology
  • 0

    posted a message on Commandore 32: Advanced command block based computer. Programming tutorial now available!
    Quote from mstram»
    A couple of binary counting programs using the torches :

    function main:
    {
    until(buttonA)
    {
    lampOff(1);
    lampOff(2);
    lampOff(3);

    lampOn(3); // 1
    lampOff(3);

    lampOn(2); // 2

    lampOn(3); // 3

    lampOff(3); // 4
    lampOff(2);
    lampOn(1);

    lampOn(3); // 5

    lampOff(3); // 6
    lampOn(2);

    lampOn(3); // 7
    }
    }




    x
    function main:
    {
    until(buttonA)
    {
    x=0;
    print(x);
    lampOff(1);
    lampOff(2);
    lampOff(3);


    x++;
    print(x);
    lampOn(3); // 1
    lampOff(3);

    x++;
    print(x);
    lampOn(2); // 2

    x++;
    print(x);
    lampOn(3); // 3

    x++;
    print(x);
    lampOff(3); // 4
    lampOff(2);
    lampOn(1);

    x++;
    print(x);
    lampOn(3); // 5

    x++;
    print(x);
    lampOff(3); // 6
    lampOn(2);

    x++;
    print(x);
    lampOn(3); // 7
    }
    }





    Prog #1 takes about 15 seconds on my "ancient" Pentium D / 2g / Win Xp for a cycle.

    Prog #2 (chat output) takes about 30 secs

    Pretty cool! If you want suggestions on where to go from here, here are some:
    you probably noticed while you were testing your program that lights don't stay in the correct state for very long and the user gets to watch as the next number appears. This can be pretty confusing. Unfortunately, the indicators are designed to give a live status update to the user and are designed to work as fast as possible, not as many features as possible. Therefore, it doesn't feature buffering or setting multiple lamps at once, which is what you could use.
    However, the GPU does have double buffering, meaning if you used the GPU and had white pixels represent 1's and black represent 0's you could get the instant changing effect. You could also display multiple binary numbers in a sort of table.

    Secondly, your program's binary counting system is completely hardcoded. To be honest, this is required if you want to use the indicator lights like you did, as you can't set a specific light based on a variable (again, it wasn't designed for this purpose). If you switch to using the screen, perhaps you could make it calculate the binary numbers using division and modulus.
    Quote from mstram»
    How does the timeout / Core system error work ?

    I tried to add a new instruction code (27), but it's getting the above error.

    I changed -28 56 116 to a comand block :
    scoreboard players test rombuffA system 27 27

    Added two comand blocks at
    -23 56 118 setblock -28 56 60 minecraft:redstone_block
    -22 56 116 say code27

    Ran this program :
    24 21 0 loop DEB 21
    5 1 21 CHA 1,21
    27 0 0 *code27*
    10 16 0 IFF buttonA,loop
    1 0 0 END


    The Core system error happens when the pipeline comes to a stop. The computer doesn't have a "real" clock, and relies on the instruction to tell the program loader when it's done executing so it can load the next instruction. If this doesn't happen, it means the instruction didn't run correctly for some reason. This can be because the instruction doesn't exist, it's bugged or there are too many redstone updates (e.g. drawing a rectangle the size of the entire screen) which causes the redstone update buffer to mess up and some things aren't updated correctly Sometimes it isn't even the instruction where it goes wrong, and it's the system in charge of loading the instruction that fails. Since it doesn't know where the problem is, and since it's in low level space, it's a core system error.

    It determines if it's frozen by means of a simple counter, which is reset whenever a new instruction is loaded and constantly counts while the computer is on. Hence, it's a timeout problem.

    If you're having a problem running your custom instruction, chances are your custom instruction wasn't implemented correctly. Check for the command found at the end of all other instructions, and execute it at least 3 (or was it 4?) ticks after the signal comes from the instruction decoder.
    Quote from mstram»

    Unfortunately it seems like Redstone-circuitry / computers is of interest to only a minority of Minecraft users.

    Unfortunately, dropbox doesn't provide download statistics and adf.ly can't show total clicks at this time, so I'm afraid I can't give you an accurate number.
    Posted in: Redstone Creations
  • 0

    posted a message on Commandore 32: Advanced command block based computer. Programming tutorial now available!
    Quote from mstram»
    Ok, thx, I'll try Java 7.

    I have been reading through that html file.

    I'm actually more interested in how your cpu works, than in trying to use it for anything ;)

    How does the memory map relate (if at all) to the /scoreboard player list output ?

    It looks like some parts of the memory map are exposed to the /scoreboard interface, while others are not?

    I'm particularly interested in the internal registers and boot / instruction fetch process.

    Is it possible to single step the cpu ?

    Mike

    You cannot single step, unfortunately. The memory map is reasonably simple, and is explained in the included HTML file. Here's it in picture form:

    The first 10 memory addresses are registers, the next 10 are non-volatile and the rest is is used by the program for whatever it wants. From address 21 and up, the compiler assigns global variables and arrays to these fixed addresses.

    Starting from address 63 and below is local memory space. This is probably the most confusing part. The computer has a hardware accelerated local memory pointer system, which allows for recursive programming. Whenever a function is entered, the address is noted on the function stack (separate, dedicated memory, not in RAM) and the local variable pointer is incremented depending on how much local memory the new function needs. When a function is done and it needs to jump back to the calling function, the reverse happens: the address is recalled and the local memory pointer is decremented to what it was before the function was called, allowing the calling functions to continue using it's own local variables as usual.

    Quote from mstram»
    A "bit" (heh) off topic.

    It seems there is no scoreboard command to list players by objective, which would be VERY handy for this application.

    The only work around I'm using at the moment is to parse out the log file from the scoreboard player.

    Have you by any chance written a scoreboard mod that does that?

    It doesn't look like MCP has been updated yet for mc 1.8, has it ?

    A search through the forums has not turned up anything, maybe I'll make a request for it.

    Mike

    I'm not sure what you mean, but you can see what's going on in the RAM by activating the memory debug feature found in the control room. This will show you a scoreboard of all memory addresses and their respective values. Due to Minecraft limitations, if you use too many variables they won't all fit on the screen though. It's good enough for reverse engineering though, because you don't need to see all components in use at the same time.

    If you really want to learn how this computer works, I recommend you learn the assembly language. That way you get complete control over the instructions the computer runs, and you can execute a single instruction if you wanted to so you can learn how just that specific thing is executed. Learning assembly helps greatly in understanding how the CPU works in general too, even without observing what's going on. To learn what assembly instructions do what, you could also use the compiler's built in generate assembly function, which lets you generate assembly from high level code, so you can learn how the compiler manages memory and branch flags to further learn how stuff works.
    Posted in: Redstone Creations
  • 0

    posted a message on Commandore 32: Advanced command block based computer. Programming tutorial now available!
    Quote from mstram»
    What version of Java did you use to build the sdk / blockloader.jar files ?

    The reason, I ask, is that double clicking the jar file(s) are not working on my XP /sp3 / Java 1.6.0_26-b03 box.

    I tried to use a similar script that I'm using for running my bukkit server :

    java -cp "SDK.jar;%CLASSPATH%" lexer.GUI

    ..but am getting :

    [stack trace here]

    Mike

    It's compiled with Java 1.7, I think. Sorry, you'll need to update Java. Perhaps I can try to get it to compile with 1.6...
    Quote from mstram»
    From the Manual:

    [manual reference here]

    I don't see a spreadsheet, is it available ?

    Mike

    it's the file called "CD32 assembly instructions.htm". I was going to post it as an excel file, but I decided to use universal file formats like HTML and PDF so that anyone can open them. I might not have made that clear in the manual, sorry.
    Posted in: Redstone Creations
  • 0

    posted a message on Commandore 32: Advanced command block based computer. Programming tutorial now available!
    Quote from Datenegassie»
    I'm making a program with the SDK. When I verify the sintax, it says

    --Compiler--
    lexer.LexerException:
    error at line 85:
    found "leverX", expected branch flag or comparison


    BUILD FAILED
    Took 66 ms

    What does it mean? 'leverX' is a valid flag I used in ifnot. As stated in the manual, ifnot(leverX=true){} or if(leverX=false){} won't work. I also tested if it would work in if(leverX){}, but it didn't.

    Full function main:

    function main:
    {
    while(true)
    {
    lampOn(1);
    add()
    tell()
    lampOff(1);
    lampOn(2);
    ifnot(leverX)
    {
    shop()
    }
    if(leverX)
    {
    saves()
    }
    lampOff(2);
    }
    }


    Sorry! That would be an error in my lexer's branch flag lookup. try "leverA" instead of leverX, leverB instead of leverY and C instead of Z. I should fix that later.
    Quote from HIHIQY1»
    Aww, looks so nice! What version do you need to use it?

    I will download it soon! :Pig:

    ~HIHIQY1 :pigout: by MineWarCrafter

    P.S. It looks so nice on the pictures!

    as Treyldog has said, you need the latest version of minecraft, 1.8, to use this computer.

    Also, a new programming episode is out, showing more advanced GPU stuff. It's also quite a bit longer than usual:
    Posted in: Redstone Creations
  • To post a comment, please or register a new account.