Are you over 18 and want to see adult content?
More Annotations
A complete backup of freedomsphoenix.com
Are you over 18 and want to see adult content?
A complete backup of laubrochustvimo.gq
Are you over 18 and want to see adult content?
A complete backup of divinerevelations.info
Are you over 18 and want to see adult content?
A complete backup of educationaltoysplanet.com
Are you over 18 and want to see adult content?
A complete backup of floridaescaperooms.com
Are you over 18 and want to see adult content?
Favourite Annotations
A complete backup of https://www.gamecmd.com/subnautica-aurora-codes/
Are you over 18 and want to see adult content?
A complete backup of https://tbcpay.ge/services/interneti/galaxy-vin
Are you over 18 and want to see adult content?
A complete backup of https://privatedelights.ch/profile/Kandykhloee
Are you over 18 and want to see adult content?
A complete backup of https://www.kaufmich.com/Jessy2012
Are you over 18 and want to see adult content?
A complete backup of https://kudaplay.tv/blog/tag/feliz-natal/
Are you over 18 and want to see adult content?
A complete backup of https://www.kaufmich.com/Bianca11190
Are you over 18 and want to see adult content?
A complete backup of https://www.creta.gr/company/antonakakis-georg/5996
Are you over 18 and want to see adult content?
Text
design.
USENTI – A BITMAP EDITOR Usenti is a simple bitmap editor for paletted images, it is the result of me being completely fed up with the lack of dec^H^H^Hany palette support in Paint, and finding the bigger photo applications a little too big for comfort. The basic toolset is very similar to MS-Paint, but often less annoying.TONC: CONTENTS
Tonc v1.4 is final. Yeah, I said that about v1.0 as well, but this time I mean it. Really. Honest. Cross my heart and hope to die, etc, etc. Well barring minor errata, this OFF ON A TANGENT : A LOOK AT ARCTANGENT IMPLEMENTATIONS The arctangent is the inverse of the tangent function. Fig 2 plots these as functions of φ. Note that all of them are periodic; this is nice because functions with bound domains are perfect for LUTs (1) . However, the arctangent, plotted in Fig 2, has several issues. Firstly, it goes on forever in both x directions. MATRICES FROM A GEOMETRIC PERSPECTIVE Creating a coordinate systems. Eq 1 is a very important equation. It basically defines what coordinates and coordinate systems mean. A coordinate system is a way of dividing space. It consists of two things: an reference point called the origin, and a number of base vectors defining the principal axes of the system. The main purpose of a coordinate system is to assign sets of numbers to eachTONC: MODE 7 PART 1
Fig 20.5 shows the whole situation. A viewer at y = a y is looking in the negative z-direction. At a distance D in front of the viewer is the projection plane, the bottom half of which is displayed on the GBA screen of height H (=160). And now for the fun part. The GBA doesn't have any real 3D hardware capabilities, but you can fake it by cleverly manipulating the scaling and translation REG TONC: KEYS - CORANAC Checking whether a key is pressed (down) or not would be obvious, if it weren't for one little detail: the bits are cleared when a key is down.So the default state of REG_KEYINPUT is 0x03FF, and not 0.As such, checking if key is down goes like this: #define KEY_DOWN_NOW(key) . (~(REG_KEYINPUT) & key) . In case your bit-operation knowledge is a bit hazy (get it cleared up. TONC: MY FIRST GBA DEMO Build the project by opening first.pnproj and hitting Alt+1 or double-clicking build.bat.This will compile first.c to first.o (the $(PROJ) is replaced with ‘first’, remember?), ; link the list of object files (currently only first.o) to first.elf, ; translate first.elf to first.gba by stripping all excess ELF information,TONC: GBA HARDWARE
The Nintendo GameBoy Advance (GBA) is a portable games console. As if you didn't know already. The CPU is a 32-bit ARM7tdmi chip running at 16.78 MHz. It has a number of distinct memory areas (like work RAM, IO and video memory) which we will look into shortly. The games are stored on Game Paks, consisting of ROM for code and data, and fairly TONC: SPRITE AND BACKGROUND OVERVIEW 7.4.2. Tile blocks (aka charblocks) All the tiles are stored in charblocks.As much as I'd like them to be called tile-blocks because that's what they're blocks of, tradition has it that tiles are characters (not to be confused with the programming type of characters: an 8bit integer) and so the critters are called charblock.Each charblock is 16kb (4000h bytes) long, so there's roomfor 512
CORANAC | MY OWN LITTLE WORLD 5.5 : ‘Exploding Head Syndrome’. I started by writing down variations on how to get from H 2 (1,8 or 10) to 2 Pu (94) + 25 H 2 + 25 O 2 with as little waste as possible, which culminated into two 7 H 2 O/24 H + 24 OH splits, leaving only 2 loose hydrogen, resulting in this solution. 6.6 : ‘Molecular Foundry’, improving my 2-reactordesign.
USENTI – A BITMAP EDITOR Usenti is a simple bitmap editor for paletted images, it is the result of me being completely fed up with the lack of dec^H^H^Hany palette support in Paint, and finding the bigger photo applications a little too big for comfort. The basic toolset is very similar to MS-Paint, but often less annoying.TONC: CONTENTS
Tonc v1.4 is final. Yeah, I said that about v1.0 as well, but this time I mean it. Really. Honest. Cross my heart and hope to die, etc, etc. Well barring minor errata, this OFF ON A TANGENT : A LOOK AT ARCTANGENT IMPLEMENTATIONS The arctangent is the inverse of the tangent function. Fig 2 plots these as functions of φ. Note that all of them are periodic; this is nice because functions with bound domains are perfect for LUTs (1) . However, the arctangent, plotted in Fig 2, has several issues. Firstly, it goes on forever in both x directions. MATRICES FROM A GEOMETRIC PERSPECTIVE Creating a coordinate systems. Eq 1 is a very important equation. It basically defines what coordinates and coordinate systems mean. A coordinate system is a way of dividing space. It consists of two things: an reference point called the origin, and a number of base vectors defining the principal axes of the system. The main purpose of a coordinate system is to assign sets of numbers to eachTONC: MODE 7 PART 1
Fig 20.5 shows the whole situation. A viewer at y = a y is looking in the negative z-direction. At a distance D in front of the viewer is the projection plane, the bottom half of which is displayed on the GBA screen of height H (=160). And now for the fun part. The GBA doesn't have any real 3D hardware capabilities, but you can fake it by cleverly manipulating the scaling and translation REG TONC: KEYS - CORANAC Checking whether a key is pressed (down) or not would be obvious, if it weren't for one little detail: the bits are cleared when a key is down.So the default state of REG_KEYINPUT is 0x03FF, and not 0.As such, checking if key is down goes like this: #define KEY_DOWN_NOW(key) . (~(REG_KEYINPUT) & key) . In case your bit-operation knowledge is a bit hazy (get it cleared up. TONC: MY FIRST GBA DEMO Build the project by opening first.pnproj and hitting Alt+1 or double-clicking build.bat.This will compile first.c to first.o (the $(PROJ) is replaced with ‘first’, remember?), ; link the list of object files (currently only first.o) to first.elf, ; translate first.elf to first.gba by stripping all excess ELF information,TONC: GBA HARDWARE
The Nintendo GameBoy Advance (GBA) is a portable games console. As if you didn't know already. The CPU is a 32-bit ARM7tdmi chip running at 16.78 MHz. It has a number of distinct memory areas (like work RAM, IO and video memory) which we will look into shortly. The games are stored on Game Paks, consisting of ROM for code and data, and fairly TONC: SPRITE AND BACKGROUND OVERVIEW 7.4.2. Tile blocks (aka charblocks) All the tiles are stored in charblocks.As much as I'd like them to be called tile-blocks because that's what they're blocks of, tradition has it that tiles are characters (not to be confused with the programming type of characters: an 8bit integer) and so the critters are called charblock.Each charblock is 16kb (4000h bytes) long, so there's roomfor 512
TONC: GRAPHICS INTRODUCTION Those are the three basic graphical types, though other classifications also spring to mind. For example, the bitmap and tiled backgrounds types, since they're mutually exclusive and use the entire screen, constitute the background-types.Also, it so happens that the tiles of tiled backgrounds and the sprites have the same memory layout (namely, in groups of 8x8 pixel tiles).TONC: INTRODUCTION
TONC consists of three parts: a text section, the actual tutorial, a code section, which contains all the source code and makefiles of the various demos, and a bin section that contains binaries of the demo. Though they are separate zip files, they work best when used together.You
TONC: KEYS - CORANAC Checking whether a key is pressed (down) or not would be obvious, if it weren't for one little detail: the bits are cleared when a key is down.So the default state of REG_KEYINPUT is 0x03FF, and not 0.As such, checking if key is down goes like this: #define KEY_DOWN_NOW(key) . (~(REG_KEYINPUT) & key) . In case your bit-operation knowledge is a bit hazy (get it cleared up. WORKING WITH BITS AND BITFIELDS The BIT() macro may be useful to create the bitmask: you can create the full mask by ORring the bits together. The other macros, BIT_SET(), BIT_CLEAR() and BIT_FLIP() will operate on the the bits indicated by the mask, and only those bits. They leave the rest intact. Note that these procedures must be macros; functions won't do because we have to write back to the variable. TONC: WHIRLWIND TOUR OF ARM ASSEMBLY Assembling assembly. The assembler of the GNU toolchains is known as the GNU assembler or GAS, and the tool's name is arm-none-eabi-as.You can call this directly, or you can use the familiar arm-none-eabi-gcc to act as a gateway. The latter is probably a better choice, as it'll allow the use of the C preprocessor with ‘-x assembler-with-cpp’. TONC: MY FIRST GBA DEMO Build the project by opening first.pnproj and hitting Alt+1 or double-clicking build.bat.This will compile first.c to first.o (the $(PROJ) is replaced with ‘first’, remember?), ; link the list of object files (currently only first.o) to first.elf, ; translate first.elf to first.gba by stripping all excess ELF information, LIBTONC: FIXED POINT MATH Perform the division x/ a by reciprocal multiplication.. Division is slow, but you can approximate division by a constant by multiplying with its reciprocal: x/a vs x*(1/a). This routine gives the reciprocal of a as a fixed point number with fp fractional bits. Parameters:TONC: BITMAP MODES
The GBA bitmap modes. Video modes 3, 4 and 5 are the bitmap modes. To use them, put 3, 4 or 5 in the lowest bits of REG_DISPCNT and enable BG2. You may wonder why we start with mode 3, rather than mode 0. The reason for this is that bitmaps are a lot easier to come to terms with than tilemaps. And this is the only reason. GRIT: GBA IMAGE TRANSMOGRIFIER Grit v0.8.4. Introduction; List of options; DWIM; Examples; Additional information; 1.1. Introduction. The GBA Image Transmogrifier (“grit” for short) is a bitmap conversion tool for GBA/NDSdevelopment.
ANOTHER FAST FIXED-POINT SINE APPROXIMATION The most useful conditions are usually the behaviour at the boundaries. In the case of a sine, that means look at x = 0 and/or x = π. The latter happens to be more useful here, so let's look at that. First, sin (½π) = 1, so that's a good one. Also, we know that at ½π a sine is flat (a derivative of 0). CORANAC | MY OWN LITTLE WORLD 5.5 : ‘Exploding Head Syndrome’. I started by writing down variations on how to get from H 2 (1,8 or 10) to 2 Pu (94) + 25 H 2 + 25 O 2 with as little waste as possible, which culminated into two 7 H 2 O/24 H + 24 OH splits, leaving only 2 loose hydrogen, resulting in this solution. 6.6 : ‘Molecular Foundry’, improving my 2-reactordesign.
TONC: CONTENTS
Tonc v1.4 is final. Yeah, I said that about v1.0 as well, but this time I mean it. Really. Honest. Cross my heart and hope to die, etc, etc. Well barring minor errata, this TONC: GRAPHICS INTRODUCTION Those are the three basic graphical types, though other classifications also spring to mind. For example, the bitmap and tiled backgrounds types, since they're mutually exclusive and use the entire screen, constitute the background-types.Also, it so happens that the tiles of tiled backgrounds and the sprites have the same memory layout (namely, in groups of 8x8 pixel tiles). TONC: KEYS - CORANAC Checking whether a key is pressed (down) or not would be obvious, if it weren't for one little detail: the bits are cleared when a key is down.So the default state of REG_KEYINPUT is 0x03FF, and not 0.As such, checking if key is down goes like this: #define KEY_DOWN_NOW(key) . (~(REG_KEYINPUT) & key) . In case your bit-operation knowledge is a bit hazy (get it cleared up.TONC: MODE 7 PART 1
Fig 20.5 shows the whole situation. A viewer at y = a y is looking in the negative z-direction. At a distance D in front of the viewer is the projection plane, the bottom half of which is displayed on the GBA screen of height H (=160). And now for the fun part. The GBA doesn't have any real 3D hardware capabilities, but you can fake it by cleverly manipulating the scaling and translation REG TONC: NUMBERS, BITS AND BIT-OPS WORKING WITH BITS AND BITFIELDS The BIT() macro may be useful to create the bitmask: you can create the full mask by ORring the bits together. The other macros, BIT_SET(), BIT_CLEAR() and BIT_FLIP() will operate on the the bits indicated by the mask, and only those bits. They leave the rest intact. Note that these procedures must be macros; functions won't do because we have to write back to the variable. LIBTONC: FIXED POINT MATH Perform the division x/ a by reciprocal multiplication.. Division is slow, but you can approximate division by a constant by multiplying with its reciprocal: x/a vs x*(1/a). This routine gives the reciprocal of a as a fixed point number with fp fractional bits. Parameters: GRIT: GBA IMAGE TRANSMOGRIFIER Grit v0.8.4. Introduction; List of options; DWIM; Examples; Additional information; 1.1. Introduction. The GBA Image Transmogrifier (“grit” for short) is a bitmap conversion tool for GBA/NDSdevelopment.
TONC: WHIRLWIND TOUR OF ARM ASSEMBLY Assembling assembly. The assembler of the GNU toolchains is known as the GNU assembler or GAS, and the tool's name is arm-none-eabi-as.You can call this directly, or you can use the familiar arm-none-eabi-gcc to act as a gateway. The latter is probably a better choice, as it'll allow the use of the C preprocessor with ‘-x assembler-with-cpp’. CORANAC | MY OWN LITTLE WORLD 5.5 : ‘Exploding Head Syndrome’. I started by writing down variations on how to get from H 2 (1,8 or 10) to 2 Pu (94) + 25 H 2 + 25 O 2 with as little waste as possible, which culminated into two 7 H 2 O/24 H + 24 OH splits, leaving only 2 loose hydrogen, resulting in this solution. 6.6 : ‘Molecular Foundry’, improving my 2-reactordesign.
TONC: CONTENTS
Tonc v1.4 is final. Yeah, I said that about v1.0 as well, but this time I mean it. Really. Honest. Cross my heart and hope to die, etc, etc. Well barring minor errata, this TONC: GRAPHICS INTRODUCTION Those are the three basic graphical types, though other classifications also spring to mind. For example, the bitmap and tiled backgrounds types, since they're mutually exclusive and use the entire screen, constitute the background-types.Also, it so happens that the tiles of tiled backgrounds and the sprites have the same memory layout (namely, in groups of 8x8 pixel tiles). TONC: KEYS - CORANAC Checking whether a key is pressed (down) or not would be obvious, if it weren't for one little detail: the bits are cleared when a key is down.So the default state of REG_KEYINPUT is 0x03FF, and not 0.As such, checking if key is down goes like this: #define KEY_DOWN_NOW(key) . (~(REG_KEYINPUT) & key) . In case your bit-operation knowledge is a bit hazy (get it cleared up.TONC: MODE 7 PART 1
Fig 20.5 shows the whole situation. A viewer at y = a y is looking in the negative z-direction. At a distance D in front of the viewer is the projection plane, the bottom half of which is displayed on the GBA screen of height H (=160). And now for the fun part. The GBA doesn't have any real 3D hardware capabilities, but you can fake it by cleverly manipulating the scaling and translation REG TONC: NUMBERS, BITS AND BIT-OPS WORKING WITH BITS AND BITFIELDS The BIT() macro may be useful to create the bitmask: you can create the full mask by ORring the bits together. The other macros, BIT_SET(), BIT_CLEAR() and BIT_FLIP() will operate on the the bits indicated by the mask, and only those bits. They leave the rest intact. Note that these procedures must be macros; functions won't do because we have to write back to the variable. LIBTONC: FIXED POINT MATH Perform the division x/ a by reciprocal multiplication.. Division is slow, but you can approximate division by a constant by multiplying with its reciprocal: x/a vs x*(1/a). This routine gives the reciprocal of a as a fixed point number with fp fractional bits. Parameters: GRIT: GBA IMAGE TRANSMOGRIFIER Grit v0.8.4. Introduction; List of options; DWIM; Examples; Additional information; 1.1. Introduction. The GBA Image Transmogrifier (“grit” for short) is a bitmap conversion tool for GBA/NDSdevelopment.
TONC: WHIRLWIND TOUR OF ARM ASSEMBLY Assembling assembly. The assembler of the GNU toolchains is known as the GNU assembler or GAS, and the tool's name is arm-none-eabi-as.You can call this directly, or you can use the familiar arm-none-eabi-gcc to act as a gateway. The latter is probably a better choice, as it'll allow the use of the C preprocessor with ‘-x assembler-with-cpp’.PROJECTS | CORANAC
Projects. This is the main project page, where you can find descriptions of my main projects and links to their downloads. Excellut. grit - GBA Raster Image Transmogrifier. SaveChem - a SpaceChem savegame tool. SpaceChem web tools. Tonc - GBA Programming in rot13. Usenti - A bitmap editor.TONC: INTRODUCTION
TONC consists of three parts: a text section, the actual tutorial, a code section, which contains all the source code and makefiles of the various demos, and a bin section that contains binaries of the demo. Though they are separate zip files, they work best when used together.You
TONC – GBA PROGRAMMING IN ROT13 Tonc - GBA Programming in rot13. Tonc is my reasonably successful tutorial on GBA programming, covering most aspects of the hardware in all its technical glory. Tonc explains the GBA hardware in detail, and how you should and should not work with it. Prior programming knowledge is required, an affinity for mathematics is alsorecommended.
OFF ON A TANGENT : A LOOK AT ARCTANGENT IMPLEMENTATIONS The arctangent is the inverse of the tangent function. Fig 2 plots these as functions of φ. Note that all of them are periodic; this is nice because functions with bound domains are perfect for LUTs (1) . However, the arctangent, plotted in Fig 2, has several issues. Firstly, it goes on forever in both x directions. TONC: MY FIRST GBA DEMO Build the project by opening first.pnproj and hitting Alt+1 or double-clicking build.bat.This will compile first.c to first.o (the $(PROJ) is replaced with ‘first’, remember?), ; link the list of object files (currently only first.o) to first.elf, ; translate first.elf to first.gba by stripping all excess ELF information,TONC: TIMERS
15.2.3. REG_TMxD. The data register REG_TMxD is a 16-bit number that works a little bit differently than you might expect at first, but in the end it makes sense. The number that you read from the register is the current timer-count. So far, so good. However, the number that you write to REG_TMxD is the initial value that the counter begins at when the timer is either enabled (via TM_ENABLE TONC: SPRITE AND BACKGROUND OVERVIEW 7.4.2. Tile blocks (aka charblocks) All the tiles are stored in charblocks.As much as I'd like them to be called tile-blocks because that's what they're blocks of, tradition has it that tiles are characters (not to be confused with the programming type of characters: an 8bit integer) and so the critters are called charblock.Each charblock is 16kb (4000h bytes) long, so there's roomfor 512
TONC: GBA HARDWARE
The Nintendo GameBoy Advance (GBA) is a portable games console. As if you didn't know already. The CPU is a 32-bit ARM7tdmi chip running at 16.78 MHz. It has a number of distinct memory areas (like work RAM, IO and video memory) which we will look into shortly. The games are stored on Game Paks, consisting of ROM for code and data, and fairly TONC: SETTING UP A DEVELOPMENT ENVIRONMENT Programmer's Notepad 2 is just one of the many editors you can work with. In principle, all you need is an editor capable of running external tools like make.DevkitPro's FAQ has a nice overview of some of the other options.. Even if you do use another editor, it's a good idea to add a pnproj file if you want others to build your project since they may not have the same editor. TONC: AFFINE BACKGROUNDS The demo uses a 64x64 tile affine background, shown in fig 12.1. This is divided into 16 parts of 256 bytes, each of which is filled with tiles of one color and the number of that part on it. Now, if the map-layout for affine backgrounds was the same as regular ones, each part would form a 16x16t square. CORANAC | MY OWN LITTLE WORLD 5.5 : ‘Exploding Head Syndrome’. I started by writing down variations on how to get from H 2 (1,8 or 10) to 2 Pu (94) + 25 H 2 + 25 O 2 with as little waste as possible, which culminated into two 7 H 2 O/24 H + 24 OH splits, leaving only 2 loose hydrogen, resulting in this solution. 6.6 : ‘Molecular Foundry’, improving my 2-reactordesign.
TONC: CONTENTS
Tonc v1.4 is final. Yeah, I said that about v1.0 as well, but this time I mean it. Really. Honest. Cross my heart and hope to die, etc, etc. Well barring minor errata, this TONC: GRAPHICS INTRODUCTION Those are the three basic graphical types, though other classifications also spring to mind. For example, the bitmap and tiled backgrounds types, since they're mutually exclusive and use the entire screen, constitute the background-types.Also, it so happens that the tiles of tiled backgrounds and the sprites have the same memory layout (namely, in groups of 8x8 pixel tiles). TONC: KEYS - CORANAC Checking whether a key is pressed (down) or not would be obvious, if it weren't for one little detail: the bits are cleared when a key is down.So the default state of REG_KEYINPUT is 0x03FF, and not 0.As such, checking if key is down goes like this: #define KEY_DOWN_NOW(key) . (~(REG_KEYINPUT) & key) . In case your bit-operation knowledge is a bit hazy (get it cleared up.TONC: MODE 7 PART 1
Fig 20.5 shows the whole situation. A viewer at y = a y is looking in the negative z-direction. At a distance D in front of the viewer is the projection plane, the bottom half of which is displayed on the GBA screen of height H (=160). And now for the fun part. The GBA doesn't have any real 3D hardware capabilities, but you can fake it by cleverly manipulating the scaling and translation REG TONC: NUMBERS, BITS AND BIT-OPS WORKING WITH BITS AND BITFIELDS The BIT() macro may be useful to create the bitmask: you can create the full mask by ORring the bits together. The other macros, BIT_SET(), BIT_CLEAR() and BIT_FLIP() will operate on the the bits indicated by the mask, and only those bits. They leave the rest intact. Note that these procedures must be macros; functions won't do because we have to write back to the variable. LIBTONC: FIXED POINT MATH Perform the division x/ a by reciprocal multiplication.. Division is slow, but you can approximate division by a constant by multiplying with its reciprocal: x/a vs x*(1/a). This routine gives the reciprocal of a as a fixed point number with fp fractional bits. Parameters: GRIT: GBA IMAGE TRANSMOGRIFIER Grit v0.8.4. Introduction; List of options; DWIM; Examples; Additional information; 1.1. Introduction. The GBA Image Transmogrifier (“grit” for short) is a bitmap conversion tool for GBA/NDSdevelopment.
TONC: WHIRLWIND TOUR OF ARM ASSEMBLY Assembling assembly. The assembler of the GNU toolchains is known as the GNU assembler or GAS, and the tool's name is arm-none-eabi-as.You can call this directly, or you can use the familiar arm-none-eabi-gcc to act as a gateway. The latter is probably a better choice, as it'll allow the use of the C preprocessor with ‘-x assembler-with-cpp’. CORANAC | MY OWN LITTLE WORLD 5.5 : ‘Exploding Head Syndrome’. I started by writing down variations on how to get from H 2 (1,8 or 10) to 2 Pu (94) + 25 H 2 + 25 O 2 with as little waste as possible, which culminated into two 7 H 2 O/24 H + 24 OH splits, leaving only 2 loose hydrogen, resulting in this solution. 6.6 : ‘Molecular Foundry’, improving my 2-reactordesign.
TONC: CONTENTS
Tonc v1.4 is final. Yeah, I said that about v1.0 as well, but this time I mean it. Really. Honest. Cross my heart and hope to die, etc, etc. Well barring minor errata, this TONC: GRAPHICS INTRODUCTION Those are the three basic graphical types, though other classifications also spring to mind. For example, the bitmap and tiled backgrounds types, since they're mutually exclusive and use the entire screen, constitute the background-types.Also, it so happens that the tiles of tiled backgrounds and the sprites have the same memory layout (namely, in groups of 8x8 pixel tiles). TONC: KEYS - CORANAC Checking whether a key is pressed (down) or not would be obvious, if it weren't for one little detail: the bits are cleared when a key is down.So the default state of REG_KEYINPUT is 0x03FF, and not 0.As such, checking if key is down goes like this: #define KEY_DOWN_NOW(key) . (~(REG_KEYINPUT) & key) . In case your bit-operation knowledge is a bit hazy (get it cleared up.TONC: MODE 7 PART 1
Fig 20.5 shows the whole situation. A viewer at y = a y is looking in the negative z-direction. At a distance D in front of the viewer is the projection plane, the bottom half of which is displayed on the GBA screen of height H (=160). And now for the fun part. The GBA doesn't have any real 3D hardware capabilities, but you can fake it by cleverly manipulating the scaling and translation REG TONC: NUMBERS, BITS AND BIT-OPS WORKING WITH BITS AND BITFIELDS The BIT() macro may be useful to create the bitmask: you can create the full mask by ORring the bits together. The other macros, BIT_SET(), BIT_CLEAR() and BIT_FLIP() will operate on the the bits indicated by the mask, and only those bits. They leave the rest intact. Note that these procedures must be macros; functions won't do because we have to write back to the variable. LIBTONC: FIXED POINT MATH Perform the division x/ a by reciprocal multiplication.. Division is slow, but you can approximate division by a constant by multiplying with its reciprocal: x/a vs x*(1/a). This routine gives the reciprocal of a as a fixed point number with fp fractional bits. Parameters: GRIT: GBA IMAGE TRANSMOGRIFIER Grit v0.8.4. Introduction; List of options; DWIM; Examples; Additional information; 1.1. Introduction. The GBA Image Transmogrifier (“grit” for short) is a bitmap conversion tool for GBA/NDSdevelopment.
TONC: WHIRLWIND TOUR OF ARM ASSEMBLY Assembling assembly. The assembler of the GNU toolchains is known as the GNU assembler or GAS, and the tool's name is arm-none-eabi-as.You can call this directly, or you can use the familiar arm-none-eabi-gcc to act as a gateway. The latter is probably a better choice, as it'll allow the use of the C preprocessor with ‘-x assembler-with-cpp’.PROJECTS | CORANAC
Projects. This is the main project page, where you can find descriptions of my main projects and links to their downloads. Excellut. grit - GBA Raster Image Transmogrifier. SaveChem - a SpaceChem savegame tool. SpaceChem web tools. Tonc - GBA Programming in rot13. Usenti - A bitmap editor.TONC: INTRODUCTION
TONC consists of three parts: a text section, the actual tutorial, a code section, which contains all the source code and makefiles of the various demos, and a bin section that contains binaries of the demo. Though they are separate zip files, they work best when used together.You
TONC – GBA PROGRAMMING IN ROT13 Tonc - GBA Programming in rot13. Tonc is my reasonably successful tutorial on GBA programming, covering most aspects of the hardware in all its technical glory. Tonc explains the GBA hardware in detail, and how you should and should not work with it. Prior programming knowledge is required, an affinity for mathematics is alsorecommended.
OFF ON A TANGENT : A LOOK AT ARCTANGENT IMPLEMENTATIONS The arctangent is the inverse of the tangent function. Fig 2 plots these as functions of φ. Note that all of them are periodic; this is nice because functions with bound domains are perfect for LUTs (1) . However, the arctangent, plotted in Fig 2, has several issues. Firstly, it goes on forever in both x directions. TONC: MY FIRST GBA DEMO Build the project by opening first.pnproj and hitting Alt+1 or double-clicking build.bat.This will compile first.c to first.o (the $(PROJ) is replaced with ‘first’, remember?), ; link the list of object files (currently only first.o) to first.elf, ; translate first.elf to first.gba by stripping all excess ELF information,TONC: TIMERS
15.2.3. REG_TMxD. The data register REG_TMxD is a 16-bit number that works a little bit differently than you might expect at first, but in the end it makes sense. The number that you read from the register is the current timer-count. So far, so good. However, the number that you write to REG_TMxD is the initial value that the counter begins at when the timer is either enabled (via TM_ENABLE TONC: SPRITE AND BACKGROUND OVERVIEW 7.4.2. Tile blocks (aka charblocks) All the tiles are stored in charblocks.As much as I'd like them to be called tile-blocks because that's what they're blocks of, tradition has it that tiles are characters (not to be confused with the programming type of characters: an 8bit integer) and so the critters are called charblock.Each charblock is 16kb (4000h bytes) long, so there's roomfor 512
TONC: GBA HARDWARE
The Nintendo GameBoy Advance (GBA) is a portable games console. As if you didn't know already. The CPU is a 32-bit ARM7tdmi chip running at 16.78 MHz. It has a number of distinct memory areas (like work RAM, IO and video memory) which we will look into shortly. The games are stored on Game Paks, consisting of ROM for code and data, and fairly TONC: SETTING UP A DEVELOPMENT ENVIRONMENT Programmer's Notepad 2 is just one of the many editors you can work with. In principle, all you need is an editor capable of running external tools like make.DevkitPro's FAQ has a nice overview of some of the other options.. Even if you do use another editor, it's a good idea to add a pnproj file if you want others to build your project since they may not have the same editor. TONC: AFFINE BACKGROUNDS The demo uses a 64x64 tile affine background, shown in fig 12.1. This is divided into 16 parts of 256 bytes, each of which is filled with tiles of one color and the number of that part on it. Now, if the map-layout for affine backgrounds was the same as regular ones, each part would form a 16x16t square. CORANAC | MY OWN LITTLE WORLD 5.5 : ‘Exploding Head Syndrome’. I started by writing down variations on how to get from H 2 (1,8 or 10) to 2 Pu (94) + 25 H 2 + 25 O 2 with as little waste as possible, which culminated into two 7 H 2 O/24 H + 24 OH splits, leaving only 2 loose hydrogen, resulting in this solution. 6.6 : ‘Molecular Foundry’, improving my 2-reactordesign.
TONC: CONTENTS
Tonc v1.4 is final. Yeah, I said that about v1.0 as well, but this time I mean it. Really. Honest. Cross my heart and hope to die, etc, etc. Well barring minor errata, this TONC: GRAPHICS INTRODUCTION Those are the three basic graphical types, though other classifications also spring to mind. For example, the bitmap and tiled backgrounds types, since they're mutually exclusive and use the entire screen, constitute the background-types.Also, it so happens that the tiles of tiled backgrounds and the sprites have the same memory layout (namely, in groups of 8x8 pixel tiles). TONC: KEYS - CORANAC Checking whether a key is pressed (down) or not would be obvious, if it weren't for one little detail: the bits are cleared when a key is down.So the default state of REG_KEYINPUT is 0x03FF, and not 0.As such, checking if key is down goes like this: #define KEY_DOWN_NOW(key) . (~(REG_KEYINPUT) & key) . In case your bit-operation knowledge is a bit hazy (get it cleared up.TONC: MODE 7 PART 1
Fig 20.5 shows the whole situation. A viewer at y = a y is looking in the negative z-direction. At a distance D in front of the viewer is the projection plane, the bottom half of which is displayed on the GBA screen of height H (=160). And now for the fun part. The GBA doesn't have any real 3D hardware capabilities, but you can fake it by cleverly manipulating the scaling and translation REG TONC: NUMBERS, BITS AND BIT-OPS WORKING WITH BITS AND BITFIELDS The BIT() macro may be useful to create the bitmask: you can create the full mask by ORring the bits together. The other macros, BIT_SET(), BIT_CLEAR() and BIT_FLIP() will operate on the the bits indicated by the mask, and only those bits. They leave the rest intact. Note that these procedures must be macros; functions won't do because we have to write back to the variable. LIBTONC: FIXED POINT MATH Perform the division x/ a by reciprocal multiplication.. Division is slow, but you can approximate division by a constant by multiplying with its reciprocal: x/a vs x*(1/a). This routine gives the reciprocal of a as a fixed point number with fp fractional bits. Parameters: GRIT: GBA IMAGE TRANSMOGRIFIER Grit v0.8.4. Introduction; List of options; DWIM; Examples; Additional information; 1.1. Introduction. The GBA Image Transmogrifier (“grit” for short) is a bitmap conversion tool for GBA/NDSdevelopment.
TONC: WHIRLWIND TOUR OF ARM ASSEMBLY Assembling assembly. The assembler of the GNU toolchains is known as the GNU assembler or GAS, and the tool's name is arm-none-eabi-as.You can call this directly, or you can use the familiar arm-none-eabi-gcc to act as a gateway. The latter is probably a better choice, as it'll allow the use of the C preprocessor with ‘-x assembler-with-cpp’. CORANAC | MY OWN LITTLE WORLD 5.5 : ‘Exploding Head Syndrome’. I started by writing down variations on how to get from H 2 (1,8 or 10) to 2 Pu (94) + 25 H 2 + 25 O 2 with as little waste as possible, which culminated into two 7 H 2 O/24 H + 24 OH splits, leaving only 2 loose hydrogen, resulting in this solution. 6.6 : ‘Molecular Foundry’, improving my 2-reactordesign.
TONC: CONTENTS
Tonc v1.4 is final. Yeah, I said that about v1.0 as well, but this time I mean it. Really. Honest. Cross my heart and hope to die, etc, etc. Well barring minor errata, this TONC: GRAPHICS INTRODUCTION Those are the three basic graphical types, though other classifications also spring to mind. For example, the bitmap and tiled backgrounds types, since they're mutually exclusive and use the entire screen, constitute the background-types.Also, it so happens that the tiles of tiled backgrounds and the sprites have the same memory layout (namely, in groups of 8x8 pixel tiles). TONC: KEYS - CORANAC Checking whether a key is pressed (down) or not would be obvious, if it weren't for one little detail: the bits are cleared when a key is down.So the default state of REG_KEYINPUT is 0x03FF, and not 0.As such, checking if key is down goes like this: #define KEY_DOWN_NOW(key) . (~(REG_KEYINPUT) & key) . In case your bit-operation knowledge is a bit hazy (get it cleared up.TONC: MODE 7 PART 1
Fig 20.5 shows the whole situation. A viewer at y = a y is looking in the negative z-direction. At a distance D in front of the viewer is the projection plane, the bottom half of which is displayed on the GBA screen of height H (=160). And now for the fun part. The GBA doesn't have any real 3D hardware capabilities, but you can fake it by cleverly manipulating the scaling and translation REG TONC: NUMBERS, BITS AND BIT-OPS WORKING WITH BITS AND BITFIELDS The BIT() macro may be useful to create the bitmask: you can create the full mask by ORring the bits together. The other macros, BIT_SET(), BIT_CLEAR() and BIT_FLIP() will operate on the the bits indicated by the mask, and only those bits. They leave the rest intact. Note that these procedures must be macros; functions won't do because we have to write back to the variable. LIBTONC: FIXED POINT MATH Perform the division x/ a by reciprocal multiplication.. Division is slow, but you can approximate division by a constant by multiplying with its reciprocal: x/a vs x*(1/a). This routine gives the reciprocal of a as a fixed point number with fp fractional bits. Parameters: GRIT: GBA IMAGE TRANSMOGRIFIER Grit v0.8.4. Introduction; List of options; DWIM; Examples; Additional information; 1.1. Introduction. The GBA Image Transmogrifier (“grit” for short) is a bitmap conversion tool for GBA/NDSdevelopment.
TONC: WHIRLWIND TOUR OF ARM ASSEMBLY Assembling assembly. The assembler of the GNU toolchains is known as the GNU assembler or GAS, and the tool's name is arm-none-eabi-as.You can call this directly, or you can use the familiar arm-none-eabi-gcc to act as a gateway. The latter is probably a better choice, as it'll allow the use of the C preprocessor with ‘-x assembler-with-cpp’.PROJECTS | CORANAC
Projects. This is the main project page, where you can find descriptions of my main projects and links to their downloads. Excellut. grit - GBA Raster Image Transmogrifier. SaveChem - a SpaceChem savegame tool. SpaceChem web tools. Tonc - GBA Programming in rot13. Usenti - A bitmap editor.TONC: INTRODUCTION
TONC consists of three parts: a text section, the actual tutorial, a code section, which contains all the source code and makefiles of the various demos, and a bin section that contains binaries of the demo. Though they are separate zip files, they work best when used together.You
TONC – GBA PROGRAMMING IN ROT13 Tonc - GBA Programming in rot13. Tonc is my reasonably successful tutorial on GBA programming, covering most aspects of the hardware in all its technical glory. Tonc explains the GBA hardware in detail, and how you should and should not work with it. Prior programming knowledge is required, an affinity for mathematics is alsorecommended.
OFF ON A TANGENT : A LOOK AT ARCTANGENT IMPLEMENTATIONS The arctangent is the inverse of the tangent function. Fig 2 plots these as functions of φ. Note that all of them are periodic; this is nice because functions with bound domains are perfect for LUTs (1) . However, the arctangent, plotted in Fig 2, has several issues. Firstly, it goes on forever in both x directions. TONC: MY FIRST GBA DEMO Build the project by opening first.pnproj and hitting Alt+1 or double-clicking build.bat.This will compile first.c to first.o (the $(PROJ) is replaced with ‘first’, remember?), ; link the list of object files (currently only first.o) to first.elf, ; translate first.elf to first.gba by stripping all excess ELF information,TONC: TIMERS
15.2.3. REG_TMxD. The data register REG_TMxD is a 16-bit number that works a little bit differently than you might expect at first, but in the end it makes sense. The number that you read from the register is the current timer-count. So far, so good. However, the number that you write to REG_TMxD is the initial value that the counter begins at when the timer is either enabled (via TM_ENABLE TONC: SPRITE AND BACKGROUND OVERVIEW 7.4.2. Tile blocks (aka charblocks) All the tiles are stored in charblocks.As much as I'd like them to be called tile-blocks because that's what they're blocks of, tradition has it that tiles are characters (not to be confused with the programming type of characters: an 8bit integer) and so the critters are called charblock.Each charblock is 16kb (4000h bytes) long, so there's roomfor 512
TONC: GBA HARDWARE
The Nintendo GameBoy Advance (GBA) is a portable games console. As if you didn't know already. The CPU is a 32-bit ARM7tdmi chip running at 16.78 MHz. It has a number of distinct memory areas (like work RAM, IO and video memory) which we will look into shortly. The games are stored on Game Paks, consisting of ROM for code and data, and fairly TONC: SETTING UP A DEVELOPMENT ENVIRONMENT Programmer's Notepad 2 is just one of the many editors you can work with. In principle, all you need is an editor capable of running external tools like make.DevkitPro's FAQ has a nice overview of some of the other options.. Even if you do use another editor, it's a good idea to add a pnproj file if you want others to build your project since they may not have the same editor. TONC: AFFINE BACKGROUNDS The demo uses a 64x64 tile affine background, shown in fig 12.1. This is divided into 16 parts of 256 bytes, each of which is filled with tiles of one color and the number of that part on it. Now, if the map-layout for affine backgrounds was the same as regular ones, each part would form a 16x16t square.CORANAC
MY OWN LITTLE WORLD
Search
MAIN MENU
Skip to primary content Skip to secondary content* Home
* About
* Documents
* Bit-tricks and other nifty little snippets * Matrices from a geometric perspective * Off on a tangent : a look at arctangent implementations * The Annotated "Programming the Nintendo GBA : The UnofficialGuide"
* Tonc Errata
* Working with bits and bitfields* Links
* Projects
* Excellut
* grit - GBA Raster Image Transmogrifier * SaveChem - a SpaceChem savegame tool * SpaceChem web tools * Tonc - GBA Programming in rot13 * Usenti - A bitmap editorPOST NAVIGATION
← Older posts
KRYPTON
2013-07-10 21:51 by cearn|
* spacechem
9
So it's my birthday and all I got was a splitting headache over ReppeChemistry :(
Posted in spacechem | 9Replies |
MY CHEMICAL ROMANCE
2013-05-10 23:09
by cearn
|
* spacechem
1
Warning : Ramble I jotted this down in one go, so it will ramble on a bit. You have been warned. It is now exactly 2 years ago that SpaceChem entered my life. As you may have guessed, I kinda like this game. In much the same way as Scrooge McDuck has a modest amount of cash. As soon as I saw it pop up on steam's featured list, I knew this was something for me. This game has basically been my addiction for the last two years. I can honestly say that there hasn't been a single day that I haven't had SpaceChem on my mind at least at some point. Steam says I've played for about 330 hours, but I'm sure it's closer to 1000 because I work out most of my designs mentally and/or on paper first. I have pages upon pages of level descriptions (name, inputs, targets and features/buildings – basically what my mission viewer outputs), design tryouts, reactor connections and their products, ratio calculations and fusion/fission schemes. I've even drawn them on my hands when I didn't have any paper close by. Friedel-Crafts, Misproportioned, Cyanogen, and a 2-rx plan for No Thanks Necessary. Solved Cyanogen on the plane back from holidays. Organometallics (top) and fission schemes for Not A Planet. I did it by reducing Ce down to H via a feedback loop, which required a 56-counter. Oh, this game. Pseudoscience:cearn. A hellish assignment made by Lanky just for me :). Also various other missions (bottom) and fission schemes(everywhere).
Figuring out the Si3O4 splitter for KOHCTPYKTOP. Notebook at work: Impostor and combustion Engine. Pocket notebook with ideas for Solder Coarsening and CombustionEngine.
Overflow. Calculations for balancing out 1 N2 + 11 O2 to _n_ NO. Optimally, 14/33 of O2 should become N. Carbon splatter. This can be balanced with a period of 216 inputs. I think … haven't dared to try it yet.MY OWN STORY
The moment I really got hooked was level 3.1: ‘Everyday Is The First Day’. For some reason, that was what made the game click in my head. How to use waldo priority to do in/bond combos as well as make double-bonds in a single cycle, how target shape is irrelevant and how effectively pass a molecule from one waldo to another. I actually spent a few days just trying to improve on this mission to see how far I could take it. I started with a 136/1/24 serial solution that I later improved to 117/1/25 ) by tightening the loops and improving the relaying, and then later scrapped the whole thing for a 104/1/42 parallel solution , which I was veryhappy with.
And then a few days later I found the upload site SolutionNet , and upon uploading noticed that my 104/1/42 took the top spot – my first first place :D. Okay, so it only lasted about a day because then Sahishar had noticed that you could start with a in/grab as well rather than letting blue spawn its own carbon (a mistake that I never made again), but I was still very happy withit.
Looking around the site more I found the impossible how cycle and symbol bests for the first mission. That's where I learned the line/bouncer pattern, where reflect the waldo back the way it came from, creating the shortest path possible; and the parked-waldo pattern, where you just ‘park’ the waldo against the wall where it executes that instruction continuously. _Holy crap, you can do that?!?_ That truly opened my eyes to the depth this game had. And then later came sensors, fusion, the careful interplay with multiple reactors and dealing with stalls, ratio balancing, bonder priorities and flip flops (oh god, the flip flops).PROUD MOMENTS
* 5.5 : ‘Exploding Head Syndrome’. I
started by writing down variations on how to get from H2 (1,8 or 10) to 2 Pu (94) + 25 H2 + 25 O2 with as little waste as possible, which culminated into two 7 H2O/24 H + 24 OH splits, leaving only 2 loose hydrogen, resulting in this solution . * 6.6 : ‘Molecular Foundry’, improving my
2-reactor design. After an initial improvement from 3433to 1798
cycles, I put
a few screenshots on my phone to improve during vacation. That ended up at 1647. Not too shabby for only 2 reactors.*
8.5a : Ω-Pseudoethyne. This bitch
of a mission is the stuff of nightmares. As one redditor notes: "|<------You must be THIS AUTISTIC to solve this level------>|". Now, since I _am_ that autistic, it actually works outnicely.
Anyway, this one has you sorting and disecting Carbomega molecules, usually inside a single reactor. I designed my own carbomega splitter on paper, and it worked _exactly_ how I envisioned it. I think I danced across the room when I saw it work. How many puzzlegames do you know that elicit that kind of reaction? And, of course, once I realized how to use special elements for custom missions, doing the reverse of this was the first thing that came tomind :).
*
Could be SpaceChem's tagline. And then there's 4.6 : ‘No Need For Introductions’, in particular my 1-reactor solution for it. When I saw snapdragon's 1-reactor Gas Works Park , I knew I had to try some insane low-reactor stuff as well. Okay, first I just sat there mesmerized, but after that I wanted to try something like this too. I decided on NNFI for a number of reasons, one of which was that I could actually see how it would be possible. Completely bonkers, yes, but possible with the right amount of patience and manual controls. I think it ook me about 5 hours to build, and then another 4 to actually complete it once, because I kept messing up on the controls forcing a restart. And, again, happy dance ensued after that. THE JOY OF SPACECHEM There are a few reasons why SpaceChem gives me a happy. There's the fact that it's basically chemically-flavored symbolic programming with two threads, and later multiple cores as well. Then there's the open-endedness of it all. In most puzzle games, everyone works towards the One True Solution, but here you're just given the inputs and targets, and how you go about turning the former into the latter is entirely up to you. So not only are you designing and constructing a solution, you're creating _your_ solution! Especially in the later missions, every solution will be unique.NERDGASMS
Then there's the sense of elation you get when you see your solution running. I've looked at quite a number reddit and forums posts of people describing their experiences, and everybody is always so proud of what they've made. Even if it's a horrible kluge of spaghettying waldos, there's always that 'I made this' sense of acomplishment. Or, if you will, "This is my solution! There are many like it, but thisone is mine!"
For example, there's this for mission 3.1. Or this monstrosity . Levels like ‘No Thanks Necessary’ and ‘In-Place Swap’ also tend to produce the most marvellous contraptions. One comment I saw on Penny-Arcade sums up the experience best: > this goddamned game. spend 20-40 minutes finishing a level and think > "hey I'm pretty clever" only to load the next one and have the game > kick you in the balls and whisper "nope, you're actually dumb as > shit" in your ear while you're rolling on the ground. But, oh, that moment of feeling clever feels _so_ good! This seems to be a common thought.DEPTH
As mentioned before, the game also has a lot of depth, but you do have to dig for it. The in-game tutorials does an adequatish job explaining what every instruction does (though some wil disagree : I've seen enough posts of people not knowing you can move start symbols or bonders, that symbols can change color or direction, and that molecule shape doesn't matter), but it does very little in terms of hand-holding. Most things you have to find out on your own. At first I thought bond+/- had to be issued while you were over the bonder plates, but a little experimentation would show that to be false. The same is true with seeing how simultaneous instructions work (i.e., red before blue), and how the output of one reactor becomes the input for the next (the order and placement of the output is carried over to the input). But there's more: not only is there waldo-priority, there's also a hidden order in how bonders work, and even reactors have a certain type of priority. There's also a strange quantum effect where you can have two atoms at the same place during in/fusion and fission/out combos. And there's particle-smashing where you can just kill off atoms if you in/bond in a certain way, but I'd count that asa bug.
But aside from just those mechanisms, there's a wealth of design patterns as well. Using the different priorities you can in/out and (un)bond in a tight space, which allows for really efficient designs. With the line pattern you can create fast and symbol-efficient relay reactors, and the parked-waldo can help cut symbols as well. And when you get to flip-flips, oh lawdy the things you can do with those. They're not just useful for simple counters like 2n, 3, 5, etc, but you can combine them inside splitter reactors to create really odd output ratios, like 11:13 or 7:17. And yes, there are missions where that would be useful. There are also a number of missions that make you use familiar things in different ways. One example is sorting without sensors. This can be done using bonders (see ‘Nonsense’ and a number of Lanky's missions), or nuke-ops like in ‘Nobility’. That was one of the missions I took on holiday to solve, thinking it would be a standard nuke mission, then I came home and noticed I didn't have sensors. _Damn you_, GuavaMoment! There's even missions with nuke-unbonding now, and catalysts, and special-element-fission. HEAD-ASPLODY CHALLENGES There's also the challenge aspect. This game is _hard_, and if you have an optimizing type of mind, it becomes even harder. In some cases, you can spend more time on a single mission than on completing the campaigns of entire games. The addition of the comparison histograms is also a stroke of evil genius. There's always the drive to make the best solution you can think of, but that drive will become even stronger when you can actually see that better solutions exist. And you can also set your own challenges. You can go for speed, or for symbol-efficiency. A number of people have gone for 1- or 2-reactor solutions in missions where it's theoretically possible, but you have to _really_ work at it. Missions like ‘No Thanks Necessary’, ‘Gas Works Park’ and ‘Precursor Compounds’. And, of course, ‘No Need For Introductions’ :). You can also try for 1-waldo solutions, or not to use sensors where they are available, or even go for the slowest solution, like Guavamoments's 260110-cycle Of Pancakesand Spaceships .
You can also let others pick the challenges for you, in the form of a tournament. Last year there was an official little tourney at PAX, and Guavamoment's Something Awful tournament. This last one was
just insane in both missions and solutions. This was around the time I make my mission viewer, which allowed for a number of new things, like the use of the special symbols and breaking the max-bond limit for input molecules. The things PseudoDude did on some missions have to be seen to be believed. Look at California Screaming , for example. Absolutely crazy. I was also very, very impressed how people managed to make balanced solutions for ‘Nightmare Factory’. I have sometimes called SpaceChem a celebration of human ingenuity, and this tournament certainly showed it. EDUMECATIONAL, USING SCIENCE! The game also has great potential for education. Not really for learning chemistry (although with all those fusion/fission levels I now know the periodic table better than I ever did in school), but mostly in planning and problem-solving. Before you can even start, you should analyze what you have and what you need to get, and how which steps would be necessary to do it. For example, for Every Day, you need to get two C's, triple-bond them, and then bond two extra H's on each end. For Ω-Pseudoethyne, you need to split the Carbomega J,S and P into C=Ω chunks, and make sure you use two H2 for each C=Ω. You can't do a mission like that without at least some forethought. It's great for learning how to debug problems. Invariably, something will go wrong somewhere, and you have to sit down, figure out when it goes sour, and then try to fix it. It can be a missing bond, or perhaps it the spaghetti mess you accidentally create an extra bond somewhere; path-lengths may get out of sequence so that you get collisions later on; and on production levels you will encounter pipeline stalls on both input and outputs or other timing issues, and you have to look really carefully to spot and fix those things. You can learn to create counters with flip-flops and create gates with sensors, which ties in with electrical engineering. For nuke missions you will need to know the periodic table pretty well, and know enough arithmetic to produce the right outputs. And for my own purposes, figuring out savegame and the custom-mission format was a nice flashback to decompiling old GBA assembly code. Ahh,good times.
So yeah, that's pretty much what SpaceChem means to me. This is the most mindbendingly awesome game ever. All hail Zachatronics. Posted in spacechem | 1Reply
|
MORE RESEARCHNET OVERVIEW CHANGES2013-04-17 13:29
by
cearn |
* spacechem
Reply
Each level how has graphics representing difficulty and type. I've also expanded the links for each level to include a direct link to the mission viewer, as well as solutionNet links.linkie
Posted in spacechem |Leave a reply
|
OMG, HELP! DIHYDROGEN MONOXIDE D: 2013-04-02 23:10 bycearn |
* tainment
Reply
Sigh.
www.wlbz2.com/news/watercooler/article/237789/109/Florida-DJs-in-hot-water-over-April-Fools-prank:
> Val and Scott were joking that "dihydrogen monoxide" was coming out > of Lee County residents' taps. > That's another name for water. > But many who didn't know that thought it may be unsafe to drink. > That led to several calls at Lee County Utilities.>
> ...
>
> Val and Scott have been suspended indefinitely. Posted in tainment |Leave a reply
|
SPACECHEM TOOLS UPDATE2013-04-01 17:02
by cearn
|
* spacechem
1
I had some time to play with the researchnet overview on an iPad the other day, and noticed just how cumbersome copy-pasting is on a tablet. It annoyed me so much that I made the mission viewer accept the code as a URL parameter as well. So now, instead of having to … * click on 'show code' * click and hold on the textarea * select 'Select All' * remove the on-screen keyboard* select 'Copy'
* click 'mission viewer' to go to the mission viewer * click and hold on the textarea to be able to select 'Paste' * remove the on-screen keyboard, again* hit 'SEND CODE'
* reload the researchnet page and retrace all previous steps because apparently you inserted or deleted a character on the gorram keyboardthat popped up,
it's now more along the lines of … * click on 'show code' * click 'mission viewer' to go to the mission viewer, with code already inserted and submitted. This should simplify things immensely. Note, though that the HTTP variables have a character limit that according to some sources may be 512 characters, in which case the bigger missions might not load properly. However, other sources sat it can be as large as 8000 for Apache servers and in testing it seems to work out, so it might be nothing to worry about. This new feature also opens up the possibility of directly inputting a code without user intervention, using ?code=. However, be careful with that, because mission codes contains plusses ('+'), which are normally read as spaces (' ') in urls. All spaces are converted back to plusses to be sure, but yo udo need to be sure there aren't any actual spaces in the url.Linkies:
* researchnet overview* mission viewer
Posted in spacechem | 1Reply
|
TONC UPDATES (FINALLY!)2013-03-24 21:34
by cearn
|
* tonc
3
And at long last, I get off my ass and fix tonc's code for the arm-eabi ↔ arm-none-eabi change. Also fixed some other things in html and css, and updated the PDF. I had to export the PDF via chrome this time, though, so it'll look a little different. It also lost me about 60 pages, now where did those go all of a sudden … But yeah … tonc is at 1.4.2 now.* link to tonc
* link to tonc filesPosted in tonc | 3
Replies
|
OH HAI THAR, RESEARCHNET2013-03-17 19:05
by cearn
|
* spacechem
3
I finially figured out where the researchNet data is stored. So now Ican maaaaake this:
http://www.coranac.com/spacechem/researchnet This is an overview of all the current researchNet missions. I might spruce it up in the future – maybe use the proper type and difficulty pictures and show the level's mission details directly rather than just a code to put in the mission-viewer, but for how thiswill do nicely.
Posted in spacechem | 3Replies
|
FIREFOX 3DVIEW
2013-03-03 16:08 bycearn |
* Uncategorized
Reply
So the other day a collegue of mine shown me the 3dview of Firefox's inspector tool. It's seriously awesome. Firefox -> Inspect element (Q) -> 3dviewLegend:
* red=table
* green=span
* cyan=div
* indigo=ul
* blue=a
Posted in Uncategorized| Leave a reply
|
→ A ↓ → A ↓ PLEASE?2012-12-21 9:32
by cearn
|
* tainment
Reply
(I know, I know, everybody's doing this. But it's still the right thing to do, dammit) Posted in tainment| Leave a reply
|
SPACECHEM MISSION VIEWER V1.22012-11-27 0:03
by
cearn |
* spacechem
7
I made a small yet important update to the mission viewer yesterday : element substitution. When I asked Lanky (the guy who's responsible for most of the new ResearchNet assignment) how he made his special-element missions, he said he had asked Zach to simply replace certain elements with the greek ones. After feeling a bit stupid for not thinking of that myself, I went along and added that option to the viewer. And then when showing this to Lanky, he suggested an any→any substitution option, so that's now possible as well. FIG 1. Conversion settings for Ru→Ω, Os→Σ, and Hs→Δ (whichis element 203).
It works as follows. There is now a “conversion bar”, seen in Fig 1. There are three types of fields here: * A conversion enable checkbox. * Search input-fields for the special elements Θ-Av. Av is the symbol for Australium. * A batch-converter field, where you can specify any-any conversions by entering _search_:_replacement_ pairs. The example from Fig 1 has 'Ru' for the Ω substitution, so any Ru's will be converted to Ωs. The batch string will be parsed into Os→Σ and Hs→Δ substitutions. As you can see, you can use either the element's symbol or number here – the special elements have numbers200 through 204.
The conversion process will change both the elements in the molecule, and in the formula. At present, the formula substitution uses a simple text conversion, so it can get confused by single-letter elements, but otherwise it works fine. Only valid SpaceChem elements are considered, so you shouldn't be able create a mission code that crashes the game(I hope).
All in all, this change presents two _interesting_ possibilities. First, the ability to create puzzles with special elements with relative ease. Second, the ability to break bond-limits. for example, you could change O-C-O into O-H-O using a 'C:H' batch. Not that anyone would be _wildly_ Mad enough to use that as a target, right?_Right?!?_
Ahem, so yeah: http://coranac.com/spacechem/mission-viewer. Posted in spacechem | 7 Replies|
POST NAVIGATION
← Older posts
BLOGROLL
* /r/Programming Horror* Bad Astronomy
* Coding Horror
* The Daily WTF
* Zachtronics
INTERNAL
* home
* sc – mission viewer * sc – researchnet * tonc – gba programmingARCHIVES
* July 2013 (1)
* May 2013 (1)
* April 2013 (3)
* March 2013 (3)
* December 2012 (1) * November 2012 (1)* August 2012 (1)
* June 2012 (1)
* May 2012 (1)
* April 2012 (3)
* November 2011 (1)* July 2011 (1)
* July 2010 (1)
* May 2010 (2)
* March 2010 (2)
* February 2010 (1) * January 2010 (2) * November 2009 (1)* August 2009 (2)
* July 2009 (1)
* June 2009 (2)
* May 2009 (1)
* April 2009 (1)
* February 2009 (2) * December 2008 (1) * November 2008 (1) * September 2008 (4)* August 2008 (2)
* June 2008 (1)
* May 2008 (5)
* April 2008 (3)
* February 2008 (4) * January 2008 (2) * December 2007 (5) * November 2007 (3) * October 2007 (4)* June 2007 (2)
* April 2007 (1)
* March 2007 (2)
* February 2007 (1) * January 2007 (1)* August 2006 (1)
META
* Log in
* Entries RSS
* Comments RSS
* WordPress.org
Proudly powered by WordPressDetails
Copyright © 2024 ArchiveBay.com. All rights reserved. Terms of Use | Privacy Policy | DMCA | 2021 | Feedback | Advertising | RSS 2.0