@Override
	public void setTMMoves(List<Integer> moveIndexes) {
		String tmDataPrefix = "87038803";
		int offset = find(arm9, tmDataPrefix);
		if (offset > 0) {
			offset += 4; // because it was a prefix
			for (int i = 0; i < 92; i++) {
				writeWord(arm9, offset + i * 2, moveIndexes.get(i));
			}
			// Skip past those 92 TMs and 6 HMs
			offset += 196;
			for (int i = 0; i < 3; i++) {
				writeWord(arm9, offset + i * 2, moveIndexes.get(i + 92));
			}

			// Update TM item descriptions
			List<String> itemDescriptions = getStrings(false,
					romEntry.getInt("ItemDescriptionsTextOffset"));
			List<String> moveDescriptions = getStrings(false,
					romEntry.getInt("MoveDescriptionsTextOffset"));
			// TM01 is item 328 and so on
			for (int i = 0; i < 92; i++) {
				itemDescriptions.set(i + 328,
						moveDescriptions.get(moveIndexes.get(i)));
			}
			// TM93-95 are 618-620
			for (int i = 0; i < 3; i++) {
				itemDescriptions.set(i + 618,
						moveDescriptions.get(moveIndexes.get(i + 92)));
			}
			// Save the new item descriptions
			setStrings(false, romEntry.getInt("ItemDescriptionsTextOffset"),
					itemDescriptions);
			// Palettes
			String baseOfPalettes;
			if (romEntry.romType == Type_BW) {
				baseOfPalettes = "E903EA03020003000400050006000700";
			} else {
				baseOfPalettes = "FD03FE03020003000400050006000700";
			}
			int offsPals = find(arm9, baseOfPalettes);
			if (offsPals > 0) {
				// Write pals
				for (int i = 0; i < 92; i++) {
					int itmNum = 328 + i;
					Move m = this.moves[moveIndexes.get(i)];
					int pal = this.typeTMPaletteNumber(m.type);
					writeWord(arm9, offsPals + itmNum * 4 + 2, pal);
				}
				for (int i = 0; i < 3; i++) {
					int itmNum = 618 + i;
					Move m = this.moves[moveIndexes.get(i + 92)];
					int pal = this.typeTMPaletteNumber(m.type);
					writeWord(arm9, offsPals + itmNum * 4 + 2, pal);
				}
			}
		} else {
		}
	}