ASCII Table and ASCII Code - SysTutorials

[Hacking Tutorial] Modifying Existing Weapons

It's been a while since I had one of these, but we're going to go through modifying weapons and adding custom ones. There's some new concepts in here for adding new items, so we're going to start simple with modifying existing weapons.
Things you'll need:
With that, let's get started. The first thing we're going to do is simple: modify stats of existing weapons.
  1. Open up Nightmare and open up the ROM and load up the Item Editor for your game (I assume you went through the other tutorials, so I won't have too many pictures for things covered earlier). You should see something like this for FE6.
  2. Things should be looking pretty obvious right now, so let's choose a weapon to modify. Let's just do Iron Lance, since that's easy to test. So go ahead and find Iron Lance in the list.
  3. Once you select it, all of the fields below will update with data for that item. Most things should be pretty straightforward, and modifying them should be pretty straightforward as well, but let's just go over them really quick.
  1. Whew, so let's just modify our Iron Lance already. We're going to modify it so that it looks like this. Yeah, it's OP.
  2. So let's check it out in game. Pssh. Yeah, "ordinary spear" my ass. Let's try it out, shall we?. I'm not sure I would have expected any different. Also, I'm pretty sure that's the Divinestone buff.
  3. So, there you go. How to break Fire Emblem 6 over your knee with an ordinary spear.
So I did mention you could do all of this without Nightmare as well. You should stop reading here if you want to keep your brain intact. I take no responsibility for massive confusion if you read on.
Here's your cheat sheet for doing it without Nightmare. You have to know where the weapon data lives in the ROM. You see, that nightmare module (nmm file) is actually human readable if you open it in a text editor. If you open up FE6's item editor, you'll find this:
FE6 Item Editor by SpyroDi, modified by Arch
FE6 Item Editor.txt
You can take a guess what that address I bolded there is. If you jump to that address in the hex, you'll find the start of weapon data. Each block for an item is 0x20 bytes (32 bytes, which corresponds to the other info in the module). Remember Iron Lance's ID? It was 0x10. That means it's the 16th item in the block. so if you do 16 x 32, you'll get 512, which is 0x200. If you jump to 0x60B648 + 0x200 (which is 0x60B848), you'll find your Iron Lance. So let's jump to it in our modified file.
What you'll see at that offset and the next 32 bytes for it is:
39 07 BE 05 00 00 10 01 21 01 00 00 B0 27 66 08 00 00 00 00 63 19 64 01 23 11 08 00 01 0F 00 00
Sweet jesus, what the fuck is this? Well, if you look closely and look at what we found earlier for Iron Lance, all of those values do actually match up. Remember the item name? The value there was 0739 in Nightmare. Remembering that GBA uses little endian, that corresponds to the first 2 bytes. The next two are the item description (which was 05BE in nightmare). The next two are the item description, which was blank (0000). Followed by the ID (0x10), weapon type (1 for spear), weapon ability 1 (0x20 is the brave effect, and 0x01 is the weapon trait, combine them together for 0x21), weapon ability 2 (0x01 is Reversing weapon triangle), 2 blank bytes (you'll see how we get this later), stat bonuses pointer (again, written in little endian order (we typed in 86627B0 earlier)), effectiveness pointer (which was nil, so 00000000), then durability (which was 99, or 0x63 in hex) and so on. Note that cost per use in this case is 2 bytes (since it could exceed 255, theoretically).
Note that this format is different across games, so you may have to figure out what you're modifying, but the general order is roughly the same. In fact, the nightmare module also tells you this information of what the bytes mean (including blank bytes from above) if you parse through it. Here's a sample from FE7's item editor nightmare module:
FE7 Item Editor by SpyroDi, updated by Nintenlord
0xBE222c Where the item data starts
159 How many items we have
36 The size of each item
FE7 Item Editor.txt
Item Name Pointer
0 The offset for the item name (i.e. how many bytes to skip from the beginning)
2 The number of bytes taken up by this field (i.e. how many bytes to read)
The bold bits are mine.
Finally, what if you don't know the ID? Alongside the nightmare module for the item editor is also an Item List.txt file that holds the list of all IDs for all items. You can look it up there as well.
Just to prove this works, we're going to modify our weapon back to more reasonable levels. We'll remove the Divinestone buff and bring it down to more reasonable levels. The changes I made look like this in HxD, and you should be able to decipher what my values are going to be.
I changed the Iron Lance to this string of hex:
39 07 BE 05 00 00 10 01 21 01 00 00 00 00 00 00 00 00 00 00 3C 04 64 08 0A 11 08 00 01 0F 00 00
Take a moment and see if you can figure out what I changed it to. I bolded the changes. See if you're right here. It still breaks the game, but at least it breaks it more reasonably.
Believe it or not, this is the easy stuff. Making your own weapons? That shit is a lot more complicated, but if you know this, it'll make things a lot easier.
submitted by OtakuReborn to fireemblem [link] [comments]

Adafruit Space Invader pendant. Want to convert to using a bicolor 1.2 led matrix. How would the code change?

 // Trinket/Gemma + LED matrix backpack jewelry. Plays animated // sequence on LED matrix. Press reset button to display again, // or add optional momentary button between pin #1 and +V. // THERE IS NO ANIMATION DATA IN THIS SOURCE FILE, you should // rarely need to change anything here. EDIT anim.h INSTEAD. #define BRIGHTNESS 14 // 0=min, 15=max #define I2C_ADDR 0x70 // Edit if backpack A0/A1 jumpers set #include  #include  #include  #include "anim2.h" // Animation data is located here #include "anim3.h" // Animation data is located here #include "anim4.h" // Animation data is located here static const uint8_t PROGMEM reorder[] = { // Column-reordering table 0x00,0x40,0x20,0x60,0x10,0x50,0x30,0x70,0x08,0x48,0x28,0x68,0x18,0x58,0x38,0x78, 0x04,0x44,0x24,0x64,0x14,0x54,0x34,0x74,0x0c,0x4c,0x2c,0x6c,0x1c,0x5c,0x3c,0x7c, 0x02,0x42,0x22,0x62,0x12,0x52,0x32,0x72,0x0a,0x4a,0x2a,0x6a,0x1a,0x5a,0x3a,0x7a, 0x06,0x46,0x26,0x66,0x16,0x56,0x36,0x76,0x0e,0x4e,0x2e,0x6e,0x1e,0x5e,0x3e,0x7e, 0x01,0x41,0x21,0x61,0x11,0x51,0x31,0x71,0x09,0x49,0x29,0x69,0x19,0x59,0x39,0x79, 0x05,0x45,0x25,0x65,0x15,0x55,0x35,0x75,0x0d,0x4d,0x2d,0x6d,0x1d,0x5d,0x3d,0x7d, 0x03,0x43,0x23,0x63,0x13,0x53,0x33,0x73,0x0b,0x4b,0x2b,0x6b,0x1b,0x5b,0x3b,0x7b, 0x07,0x47,0x27,0x67,0x17,0x57,0x37,0x77,0x0f,0x4f,0x2f,0x6f,0x1f,0x5f,0x3f,0x7f, 0x80,0xc0,0xa0,0xe0,0x90,0xd0,0xb0,0xf0,0x88,0xc8,0xa8,0xe8,0x98,0xd8,0xb8,0xf8, 0x84,0xc4,0xa4,0xe4,0x94,0xd4,0xb4,0xf4,0x8c,0xcc,0xac,0xec,0x9c,0xdc,0xbc,0xfc, 0x82,0xc2,0xa2,0xe2,0x92,0xd2,0xb2,0xf2,0x8a,0xca,0xaa,0xea,0x9a,0xda,0xba,0xfa, 0x86,0xc6,0xa6,0xe6,0x96,0xd6,0xb6,0xf6,0x8e,0xce,0xae,0xee,0x9e,0xde,0xbe,0xfe, 0x81,0xc1,0xa1,0xe1,0x91,0xd1,0xb1,0xf1,0x89,0xc9,0xa9,0xe9,0x99,0xd9,0xb9,0xf9, 0x85,0xc5,0xa5,0xe5,0x95,0xd5,0xb5,0xf5,0x8d,0xcd,0xad,0xed,0x9d,0xdd,0xbd,0xfd, 0x83,0xc3,0xa3,0xe3,0x93,0xd3,0xb3,0xf3,0x8b,0xcb,0xab,0xeb,0x9b,0xdb,0xbb,0xfb, 0x87,0xc7,0xa7,0xe7,0x97,0xd7,0xb7,0xf7,0x8f,0xcf,0xaf,0xef,0x9f,0xdf,0xbf,0xff }; int animationSection = 0; void ledCmd(uint8_t x) { // Issue command to LED backback driver Wire.beginTransmission(I2C_ADDR); Wire.write(x); Wire.endTransmission(); } void clear(void) { // Clear display buffer Wire.beginTransmission(I2C_ADDR); for(uint8_t i=0; i<17; i++) Wire.write(0); Wire.endTransmission(); } void setup() { power_timer1_disable(); // Disable unused peripherals power_adc_disable(); // to save power PCMSK |= _BV(PCINT1); // Set change mask for pin 1 Wire.begin(); // I2C init clear(); // Blank display ledCmd(0x21); // Turn on oscillator ledCmd(0xE0 | BRIGHTNESS); // Set brightness ledCmd(0x81); // Display on, no blink } uint8_t rep = REPS; void loop() { switch (animationSection) { case 0: for(int i=0; i 10) { animationSection = 0; } if(!--rep) { // If last cycle... ledCmd(0x20); // LED matrix in standby mode // GIMSK = _BV(PCIE); // Enable pin change interrupt // power_all_disable(); // All peripherals off // set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep_enable(); // sei(); // Keep interrupts disabled // sleep_mode(); // Power down CPU (pin 1 will wake) // Execution resumes here on wake. // PLD - Simply Sleep for 2 minutes then start again... //delay(100000); //delay(100000); delay(120000); animationSection = 0; GIMSK = 0; // Disable pin change interrupt rep = REPS; // Reset animation counter power_timer0_enable(); // Re-enable timer power_usi_enable(); // Re-enable USI Wire.begin(); // Re-init I2C clear(); // Blank display ledCmd(0x21); // Re-enable matrix } } ISR(PCINT0_vect) {} // Button tap 
This is a section of the anim file. I want to be able to set the various colors in these "frames"
// Animation data for Trinket/Gemma + LED matrix backpack jewelry. // Edit this file to change the animation; it's unlikely you'll need // to edit the source code. #define REPS 10 // Number of times to repeat the animation loop (1-255) const int frameSpeed2 = 3; const uint8_t PROGMEM anim2[] = { // Animation bitmaps. Each frame of animation MUST contain // 8 lines of graphics data (there is no error checking for // length). Each line should be prefixed with the letter 'B', // followed by exactly 8 binary digits (0 or 1), no more, // no less (again, no error checking). '0' represents an // 'off' pixel, '1' an 'on' pixel. End line with a comma. B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, frameSpeed2, // 0.10 seconds }; 
submitted by pldiguanaman to arduino [link] [comments]

binary file contents in hexadecimal: 02234323590AFFE0. C code: static unsigned char FileData[] = {0x02, 0x23, 0x43, 0x23, 0x59, 0x0a, 0xff, 0e0}; There has got to be a way Xpresso could manage the binary file as a resource which gets coded to Flash on build? Thanks in advance-Lon (exclamation mark) code 034 042 0x22 00100010 " (double quote) 035 043 0x23 00100011 # (number sign) 036 044 0x24 00100100 $ (dollar sign) 037 045 0x25 00100101 % (percent) 038 046 0x26 00100110 & (ampersand) 039 047 0x27 00100111 ' (single quote) 040 050 0x28 00101000 ( (left opening parenthesis) 041 051 0x29 00101001 ) (right closing parenthesis) 042 052 0x2A 00101010 * (asterisk) 043 053 ... Binary System. The binary numeral system uses the number 2 as its base (radix). As a base-2 numeral system, it consists of only two numbers: 0 and 1. While it has been applied in ancient Egypt, China and India for different purposes, the binary system has become the language of electronics and computers in the modern world. Tuesday, October 18, 2016. 0x23 In Binary Option In order to avoid a Flag Day caused by lack of interoperation between new RPI Option Type (0x23) and old RPI Option Type (0x63) nodes, this section defines a flag in the DIO Configuration option, to indicate when the new RPI Option Type can be safely used. This means, the flag is going to indicate the value of Option Type that the network will be using for the RPL Option. Thus, when a node ... 0X23 in binary option November 21, 2017 Wednesday, 28 February 2018. 0x23 in binary option Four binary digits (also called nibbles) make up half a byte. This means one byte can carry binary values from 0000 0000 to 1111 1111. In hex, these can be represented in a friendlier fashion, ranging from 00 to FF. In html programming, colors can be represented by a 6-digit hexadecimal number: FFFFFF represents white whereas 000000 represents black. ASCII Text. ASCII (American Standard Code ... Es la opción binaria de comercio una buena manera de hacer dinero sistema z10 - Todos los corredores de confianza en un solo lugar. Opciones. Una cosa dura a las opciones que ganan el sistema de la estrategia por el cual usted sabe. Jul. 26. 0x23 in binary option

[index] [22503] [20790] [19959] [18039] [23511] [26318] [5711] [5023] [9772] [22103]