OpenLLM-France/wikimedia huggingface dataset:
# Super NES Programming/Multijointed Sprite Bosses

Multi-jointed bosses are an efficient, but rarely used, technique to animate cool looking bosses. Unlike most bosses where the entire boss is one sprite, with multi-jointed bosses, every body part is an individual sprite that rotate around each other.
Here is how to program a simple robotic arm:
1) Draw the sprite for the shoulder, upper arm, elbow, lower arm and hand at 16 equally spaced angles.
2) Now you need to define 10 registers:
a) shoulder angle
b) elbow angle
c) shoulder angle key frame
d) elbow angle key frame
e) shoulder x
f) shoulder y
g) angle
h) amplitude
i) result x
j) result y
3) Write a routine that converts between polar coordiantes (angle,amplitude) to rectangular coordinates (x,y).
4) Write a routine that displays a sprite with the center being defined by resulting rectangular coordinates, with the angle being used to determing the sprite's attributes.
5) Write a routine that increments the shoulder and elbow angles towards their coorisponding key frame angles.
6) Now put all this together in one big routine:
- The bosses AI determines the key frame angles and shoulder coordinates.
- increment the shoulder and elbow angles towards their coorisponding key frame angles.
- copy shoulder coordinates to result coordinates
- copy shoulder angle to angle
- display 16x16 shoulder sprite
- set amplitude to 24 pixels
- convert between polar to rectangular coordinates
- display 32x32 upper arm sprite
- convert between polar to rectangular coordinates
- display 16x16 elbow sprite
- copy elbow angle to angle
- convert between polar to rectangular coordinates
- display 32x32 lower arm sprite
- convert between polar to rectangular coordinates
- display 16x16 hand sprite
# Super NES Programming/Platform Physics
## Ground Mode

Ground mode is when the player is standing or walking on the ground. In ground mode, the following routine is performed:
1) Check to see if jumping button is pressed
2) If so, jump to "initiate_jump_mode" routine
3) Check collision with the tiles below
4) If all tiles underneath player are empty, jump to "initiate_fall_mode" routine

### Initiate Jump Mode

1) set "y_velocity" to "take_off_velocity"
2) set "jump_mode" flag

### Initiate Fall Mode

1) set "y_velocity" to #0
2) set "jump_mode" flag

## Jump/Fall Mode

Jump/Fall mode is when the player jumps or falls. In jump/fall mode, the following routine is performed:
1) increment "y_velocity" by #gravital_acceleration
2) add "y_velocity" to "y_coordinate"
3) if "y_velocity">0, then go to "fall_mode" routine

### Fall Mode

1) checks for collision between player and tiles
2) If collision is detected, follow "land_on_ground" routine

#### Land on Ground

1) reset "jump_mode" flag
2) pop the sprite up to the top of the ground tile
# Super NES Programming/Introduction to assembly

It would be convenient if this Wikibook could assume that you have learned some other form of assembly language. This tutorial will try to introduce you to the practice of programming the SNES at the lowest level possible.

## Registers

Registers are at the core of any processor, and are basically locations in memory which serve a special purpose. All instructions have an effect on one or more of these registers. Even the nop instruction, which does nothing, increments the Program Counter register.
General Purpose Registers :
| Accumulator (A) | Handles all arithmetic and logic. The essential core of the 65816. |
| Index (X & Y) | Index Registers with limited Capabilities |
| Special Purpose Registers ||
| Processor Status (P) | Processor Flags, holds the results of tests and 65816 processing states. |
| Stack (S) | Stack Pointer |
| Direct Page (DP) | Allows the 65816 to access memory in direct addressing modes |
| Program Bank (PB) | Holds the memory bank address of the current CPU instruction |
| Program Counter (PC) | Holds the memory address of the current CPU instruction |
| Data Bank (DB) | Holds the memory bank address of the data the CPU is accessing |
All of the SNES registers are either 8 bits or 16 bits. Registers A, X, Y may be set to be either 8 or 16 bits.

## Hexadecimal notation

In low-level programming, it is common for programmers to type numbers in hexadecimal notation. This means that values can have a base of 16. In other words, each digit can have 16 possible values: 0-9, A,B,C,D,E,F. This makes it easy to represent and manipulate individual bits.
In SNES assembly, hex values are specified with the $ prefix.
Examples :
| Decimal | Hex | binary |
| 18 | $12 | %00010010 |
| 122 | $7A | %01111010 |

## Instructions

Instructions are a breakdown of machine code. For the SNES, they consist of a 1-byte opcode followed by a 0-3 byte operand. Full instructions may be known as words. For example, the instruction "ADC $3a" occupies 2 bytes in memory, and if assembled, it would be stored as "E6 3A".
Most instructions that are at least 2 bytes long have more than one addressing mode. Addressing modes are put in place so basic instructions may be interpreted correctly given a wide range of operands. The SNES addressing modes may be found at the end of the 65c816_reference

### Arithmetic/logical instructions

Most arithmetic instructions perform an arithmetic operation on A (the accumulator) and another value and store the result back in A. Addition, for instance, is represented by "ADC".
ADC, SBC (subtraction), AND, ORA (bitwise OR), EOR (bitwise XOR) are the most basic arithmetic instructions. The most common addressing modes for these are:
| Immediate | ADC #$01ff | Adds $01ff to A. |
| Absolute | SBC $80fb | subtracts value at the address 80fb in the bank specified by DB |
| Absolute indexed | AND $a0c0, X | same as absolute, but add X to the address |
| And much more! |
See also 65c816 Reference: Addressing Modes
# Super NES Programming/Initialization Tutorial/Snes Init
## Contributors

* Written by the ancient Midfit, with the comment: ; Cool Init routine! use it in your own code!!
* Bazz: This was a mess in conjunction with the tutorials. Fixed a ton of things.
# Super NES Programming/Initialization Tutorial/header

Bazz wrote almost this entire header. Use it in your own code!
# Super NES Programming/Pointers
## Required Tools

* The WLA-65816 Macro Assembler
* A SNES Emulator
* An initialization routine and a header.

## Overview

Pointers are an important part of a game or ROM. In the Super Nintendo, these pointers are usually made up of various addresses organized in a specific order. Some examples of pointer tables may include, for example, the list of locations in a ROM of a game's levels, or pointers to where certain sections of code are. A pointer could be related to a file name; C:\WINDOWS\explorer.exe, for example, points to the file explorer.exe in the folder WINDOWS.

## Example

Say you have a game with three levels. You've inserted them into your ROM, but you need your game to be able to read the levels. This could be solved by using pointers to the three levels in a table, somewhat like this:
This table would now contain the addresses in the ROM of level 1, level 2, and level 3. The game could then read from this table and know where to look for those level files.

## db/dw/dl

.dl, .dw, and .db are three assembler directives for WLA-65816. This means that they tell the assembler to do something, in this case they tell it to create a byte, two bytes, or three bytes that together make up an address. .db creates a one-byte number, .dw a two-byte number, and .dl a three-byte number. Note that although they are used for pointers in this tutorial, these three commands can also be used to hold absolute values.

## Accessing the table

In 65816 ASM, tables are relatively easy to access. If you are already familiar with A and X in the 65c816, then this next section should not be a problem for you.
This code will take X, and then read from (Table + X) to get a value, and then store that to the Accumulator (A). Note that X would need to be doubled in order to read the correct entry. Having X be one would read from the second byte of the first entry and the first byte of the second entry, which is not the intended operation of the code.
# Structural Biochemistry/Proteins/Immunology; Another Approach toward Protein Investigation
## Introduction

Immunology deals largely with the interactions between antibodies and antigens. However, immunological techniques can be used for protein research. Antibodies are highly specific to their target proteins, thus making it possible to tag a certain protein for further in depth studies.
Immunological techniques can be utilized to make the polyclonal and monoclonal antibodies used in protein identification.
# Structural Biochemistry/Proteins/Fibrous Proteins
## Introduction

A Fibrous protein is a protein with an elongated shape. Fibrous proteins provide structural support for cells and tissues. There are special types of helices present in two fibrous proteins α-keratin and collagen. These proteins form long fibers that serve a structural role in the human body. Fibrous proteins are distinguished from globular proteins by their filamentous, elongated form. Also, fibrous proteins have low solubility in water compared with high solubility in water of globular proteins. Most of them play structural roles in animal cells and tissues, holding things together. Fibrous proteins have amino acid sequences that favour a particular kind of secondary structure which, in turn, confer particular mechanical properties on the proteins.

## Examples

Collagen is a triple helix formed by three extended proteins that wrap around one another. Many rodlike collagen molecules are cross-linked together in the extracellular space to form collagen fibrils that have the tensile strength of steel. The striping on the collagen fibril is caused by regular repeating arrangement of the collagen molecules within the fibril.
Elastin polypeptide chains are cross-linked together to form rubberlike, elastic fibers. Each elastin molecule uncoils into a more extended conformation when the fiber is stretched and will recoil spontaneously as soon as the stretching force is relaxed.
# Structural Biochemistry/Proteins/Infrared Spectroscopy
## Infrared Spectroscopy

Infrared Spectroscopy (IR Spectroscopy) is a common spectroscopic technique used to analyze the functional groups of a sample by measuring its absorbency through different IR frequencies. IR spectrometers can accept a wide range of samples, including solid, liquids and gases. The infrared region of the electromagnetic spectrum can be divided into three regions, the near-, mid, and far- infrared. Near IR has a range of about 14000 cm$^{-1}$, mid-infrared ranges from approximately 4000-400 cm$^{-1}$, and far-infrared ranges from 400-10 cm$^{-1}$.
Infrared Spectroscopy essentially is a method used to identify functional groups of an unknown structure by varying vibrational activity. Infrared ‘light’ or radiation hits the bonds in the molecule, absorb the energy of the infrared light and respond by vibrating. This vibrating action can be anything from simple bending to stretching, rocking and scissoring. According to the amount of vibrational activity that occurs in the varying functional groups, the functional group is localized at a certain wavenumber that is calculated as inverse centimeters. Each functional group has a unique peak at certain wavenumbers. Essentially literature values of these functional groups can be used to help identify an unknown structure once put through an IR spectroscoper. Given peaks can be matched with literature values and a structure can be solved.

## References

* ↑ Hsu, Sherman. "Infrared Spectroscopy." Handbook of Instrumental Techniques for Analytical Chemistry. Norwalk: Perkin-Elmer, n.d. 247-83. Www.prenhall.com. The Perkin-Elmer Corp. Web. <http://www.prenhall.com/settle/chapters/ch15.pdf>.
# Structural Biochemistry/Proteins/Internal Ribosome Entry Sites
## IRES

Eukaryotic translation initiation occurs through a cap mediated mechanism where eIF4E recruits the 5’ capped mRNA to the small subunit. It was discovered in viruses that another mechanism exists through the use of internal ribosome entry sites (IRESs). The IRES is a segment of DNA that allows for translation initiation in the middle of a messenger RNA bypassing the 5’ cap dependent system.

## History

They were first discovered by Nahum Sonenberg and Eckard Wimmer in 1988 in Poliovirus RNA and encephalomyocarditis virus RNA. They are located mostly in the 5’ UTR of RNA viruses and allow for cap independent RNA translation. This is useful for the virus because it ensures that viral mRNA is still translated even when host cell translation is shut off. Poliovirus secretes a viral protease that cleaves the eIF4E complex and inhibits cap dependent translation while translating its own mRNA through IRESs.

## Mechanism

The mechanism of viral IRES function varies depending on the virus. Hepatitis C virus does not require scanning for the initiator codon because its IRES directly binds to the 40S subunit in a way that the initiator codon is already in the P site. They also do not require any eukaryotic initiation factors. Picornavirus IRESs do not bind directly to the small subunit but rather to the eIF4G and require additional proteins know as IRES trans acting factors (ITAF) to function.
# Software Engineering with an Agile Development Framework/Whole process/Construct

During implementation - always having a working product.
# Software Engineering with an Agile Development Framework/Whole process/Steer

Each time you meet you should have a "stand up meeting" using the scrum questions.
Every week you should have a scrum meeting (the same but take a bit longer). At the end of every sector you should have a review meeting. This would usually include the client.
* Case study Taxi Dispatch System
* Group: Hamish and Shane
* Every time they worked for the duration of the project, Hamish and Shane had a short Scrum meeting. They recorded their meetings on the sector template. Here are samples from each of the three iterations.
# Software Engineers Handbook/Fields/Embedded Systems

Just about everything these days has a computer of some sorts in it. Your VCR, your car and even your washing machine or toaster may have a microcontroller or microcomputer in it to control it. These computer based systems are often referred to as Embedded Systems, because they have a computer embedded within something. Programming embedded systems requires a different set of skills from standard PC programming, because you need to know a bit about the hardware (electronics and mechanical systems) that your program is running on or controlling. You often have to be very aware of what resources (such as memory, speed etc.) your program can use. A large percentage of this work is done in C, using an operating system, but some requires assembly language. The subset named "firmware" will also include programming FPGA devices (Field Programmamble Gate Array).

## See Also

* Embedded Systems
* Programmable Logic
# Software Engineers Handbook/Language Dictionary

* Software Engineers Handbook/Language Dictionary
* Software Engineers Handbook/Language Dictionary/ALGOL
* Software Engineers Handbook/Language Dictionary/Ada
* Software Engineers Handbook/Language Dictionary/Assembly Template
* Software Engineers Handbook/Language Dictionary/BASIC
* Software Engineers Handbook/Language Dictionary/Burroughs B5700
* Software Engineers Handbook/Language Dictionary/C
* Software Engineers Handbook/Language Dictionary/C++
* Software Engineers Handbook/Language Dictionary/COBOL
* Software Engineers Handbook/Language Dictionary/C Sharp
* Software Engineers Handbook/Language Dictionary/DEC PDP-11
* Software Engineers Handbook/Language Dictionary/FORTRAN
* Software Engineers Handbook/Language Dictionary/Functional/J
* Software Engineers Handbook/Language Dictionary/J
* Software Engineers Handbook/Language Dictionary/Java
* Software Engineers Handbook/Language Dictionary/Lisp
* Software Engineers Handbook/Language Dictionary/MASM
* Software Engineers Handbook/Language Dictionary/Multi-paradigmed/Ada
* Software Engineers Handbook/Language Dictionary/Multi-paradigmed/C
* Software Engineers Handbook/Language Dictionary/Multi-paradigmed/C++
* Software Engineers Handbook/Language Dictionary/Multi-paradigmed/Python
* Software Engineers Handbook/Language Dictionary/Object Oriented/Java
* Software Engineers Handbook/Language Dictionary/Object Oriented/Visual J++
* Software Engineers Handbook/Language Dictionary/Object Oriented/Visual Jplusplus
* Software Engineers Handbook/Language Dictionary/Oz
* Software Engineers Handbook/Language Dictionary/PHP
* Software Engineers Handbook/Language Dictionary/PLI
* Software Engineers Handbook/Language Dictionary/PLI/arrays
* Software Engineers Handbook/Language Dictionary/PLI/bit strings
* Software Engineers Handbook/Language Dictionary/PLI/procedures
* Software Engineers Handbook/Language Dictionary/PLI/storage classes
* Software Engineers Handbook/Language Dictionary/Pascal
* Software Engineers Handbook/Language Dictionary/Perl
* Software Engineers Handbook/Language Dictionary/Procedural/C
* Software Engineers Handbook/Language Dictionary/Programming Language for Business
* Software Engineers Handbook/Language Dictionary/Python
* Software Engineers Handbook/Language Dictionary/Qi
* Software Engineers Handbook/Language Dictionary/Ruby
* Software Engineers Handbook/Language Dictionary/Sample Template
* Software Engineers Handbook/Language Dictionary/Smalltalk
* Software Engineers Handbook/Language Dictionary/ToonTalk
* Software Engineers Handbook/Language Dictionary/Visual J++
# Software Engineering with an Agile Development Framework/Whole process/Communicate

1. Within group
2. With stakeholders (especially client)
3. With peers and community
The aim of the capstone projects at the culmination of the degree programme is to “make learning real, by integrating theory and practice through authentic problems, processes and deliverables” (Fincher et al. 2001 p57).
Mnagement document
Client satisfaction letters. Characteristic - professionalism and communication.
Fincher, S., Petre, M, and Clark, M. Eds. (2001). Computer Science Project Work: Principles and Pragmatics. London, Springer. 267p
Group communication
* Case study Use your noodle
* Group: Gena Salmon, Michael Brown and John Stefani for Iain Bonney
* Use your noodle is an online Educational Resource for subscribed school students aged 7 – 12, that allows students to further develop their Mathematical and Literacy skills through tailored lessons.
* The project is stand alone; it’s entirely a new business venture for the client based on a lack of online resources available. The teaching method is essentially involves online dynamic lessons which are based on the current curriculum for 7 - 12 year olds. The lessons are to be structured by the clients who are both teachers, as we have explained to the client we have placed a strong emphasis on what the objectives of each lesson are.
* Online Maths lessons that students can interact with and submit
* Online Literacy lessons that students can interact with and submit
* Teacher Feedback on submitted lessons
* Peer Feedback
* Individual logins for students
* Personalised Lesson Design themes for students
* Interface theme options
* Payment options for school terms
* In this first meeting of the group, details such as phone numbers and emails are shared, as are other work commitments. Other commitments and expectations should be discussed very early in the project.
* Good features of productive meetings shown here: action points, next meeting, following up with client. It is also clear that these are "working" meetings rather than just talking.
* During implementation, the group established links with developer communities. These links proved valuable for advice and trouble shooting.
# Super Mario Sunshine/Items
## Shine Sprite

Shine Sprites (also known as Shines) "embody the power of the Sun and provide the energy that sustains Isle Delfino". They are required to unlock events and stages throughout the game.

## Gold coin

Coins are scattered all over every area of the game. Collect 50 of them for an extra life; collect 100 for to get a Shine. Each coin also recovers one health point.

## Blue coin

Collect these coins and swap them for shines at the boat house in Delfino Plaza (by the portal to Ricco Harbor). Each blue coin also regains 2 health points.

## Red coin

Several episodes require you to collect a set of 7-8 red coins, which may be formed into a pattern to make capturing them a pain in the neck, in order to win a Shine. Also, each one recovers 2 health points.

## Fruit

Fruit are mainly used to feed Yoshi. There are also certain ladies in Delphino Plaza who will reward you with a Blue coin for filling up their fruit basket.
There are six types of fruit.

### Bananas

    Turn Yoshi pink and cause him to squirt pink juice.

### Coconuts

    These aren't hairy and brown as you see in a supermarket, but appear as smooth, light green orbs. They also give Yoshi pink color and juice.

### Pineapples

    Turn Yoshi and his juice orange.

### Papayas

    Opinions vary on what these oblong yellow fruits are intended to be since their name is never used; they have also been called mangos, lemons or pears in various guides. They give Yoshi orange color and juice.

### Durians

    Most people in temperate climates will not be familiar with these, but it's an actual fruit known for its tough, spiky husk and its pungent odor. In the game they appear as light brown orbs and, unlike other fruits in the game, Mario can't pick them up and carry them. They can be moved by kicking or spraying. Durians turn Yoshi and his juice purple.

### Chili peppers

    These are the last and rarest fruits and they turn Yoshi and his juice purple. As you might expect, some find the taste too hot to handle.

## Water barrel

Used to clean large amounts of goop and to cool down Chain Chomps.

## Water bottles

They refill your water tank. Small bottles refill half the tank and large bottles refill the whole tank.

## Tool box

Holds replacement nozzles for FLUDD. There is a different type for each type of nozzle. Sometimes they appear as holograms and you must find the real one to turn the holograms into real nozzles. The boxes are color-coded:
* Blue: Hover nozzle
* Grey: Turbo nozzle
* Red: Rocket nozzle
FLUDD's water tank is refilled when you pick up a nozzle.

## Yoshi eggs

Hatch them into Yoshis by feeding them the fruit they want. Yoshi will only hatch with the same fruit that appears in his thought bubble.

## 1-Up mushrooms

Gives Mario an extra life. Also refills his energy meter and tops up FLUDD's tank.
# Rise of Nations

Welcome to the Wikibook for the highly popular strategy game Rise of Nations.

## Table of contents

* Units - Guides to unit types that can be found in the game
* Buildings - Guides to buildings that can be constructed in the game
* Resources - Guides to resources in the game
* Ages - Guides to time periods, or Ages, in the game
* Nations - Guides to nations that can be played in the game
* Cheats - Cheat codes in Rise Of Nations
# Ring Theory/Idempotent and Nilpotent elements

$x\in R$ is an Idempotent if $x^{2}=x$
$x\in R$ is nilpotent if $\exists n\in \mathbb {N}$ such that $x^{n}=0$
# Ring Theory/Introduction

The study of rings originated from the theory of polynomial rings and the theory of algebraic integers. Furthermore, the appearance of hypercomplex numbers in the mid-nineteenth century undercut the pre-eminence of fields in mathematical analysis.
Richard Dedekind introduced the concept of a ring.
The term ring (Zahlring) was coined by David Hilbert in the article Die Theorie der algebraischen Zahlkörper, Jahresbericht der Deutschen Mathematiker Vereinigung, Vol. 4, 1897.
The first axiomatic definition of a ring was given by Adolf Fraenkel in an essay in Journal für die reine und angewandte Mathematik (A. L. Crelle), vol. 145, 1914.
In 1921, Emmy Noether gave the first axiomatic foundation of the theory of commutative rings in her monumental paper Ideal Theory in Rings.