filename | src/bootstrap.h |
changeset | 1109:700c5ab26a63 |
prev | 1100:50e702af9373 |
author | nkeynes |
date | Thu Jun 10 22:13:16 2010 +1000 (13 years ago) |
permissions | -rw-r--r-- |
last change | Integrate executable wrapping into the user interface - command-line now loads wrapped by default, -e <bin> to run binary - add support for .bin executables - Add useful (internal) error codes |
view | annotate | diff | log | raw |
1 /**
2 * $Id$
3 *
4 * CD Bootstrap header parsing. Mostly for informational purposes.
5 *
6 * Copyright (c) 2005 Nathan Keynes.
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 */
19 /*
20 * IP.BIN related code. Ref: http://mc.pp.se/dc/ip0000.bin.html
21 */
22 #ifndef lxdream_bootstrap_H
23 #define lxdream_bootstrap_H 1
25 #include "lxdream.h"
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
31 #define BOOTSTRAP_LOAD_ADDR 0x8C008000
32 #define BOOTSTRAP_ENTRY_ADDR 0x8c008300
33 #define BOOTSTRAP_SIZE 32768
34 #define BOOTSTRAP_MAGIC "SEGA SEGAKATANA SEGA ENTERPRISES"
35 #define BOOTSTRAP_MAGIC_SIZE 32
37 #define BINARY_LOAD_ADDR 0x8C010000
38 #define BINARY_MAX_SIZE (0x8D000000 - BINARY_LOAD_ADDR)
40 /**
41 * Bootstrap header structure
42 */
43 typedef struct dc_bootstrap_head {
44 char magic[32];
45 char crc[4];
46 char padding; /* normally ascii space */
47 char gdrom_id[6];
48 char disc_no[5];
49 char regions[8];
50 char peripherals[8];
51 char product_id[10];
52 char product_ver[6];
53 char product_date[16];
54 char boot_file[16];
55 char vendor_id[16];
56 char product_name[128];
57 } *dc_bootstrap_head_t;
59 /**
60 * Dump the bootstrap info to the output log for infomational/debugging
61 * purposes.
62 */
63 void bootstrap_dump(void *data, gboolean detail);
65 void bootprogram_scramble( unsigned char *dest, unsigned char *src, size_t length );
66 void bootprogram_unscramble( unsigned char *dest, unsigned char *src, size_t length );
67 #ifdef __cplusplus
68 }
69 #endif
71 #endif /* !lxdream_bootstrap_H */
.