Search
lxdream.org :: lxdream/src/bootstrap.h
lxdream 0.9.1
released Jun 29
Download Now
filename src/bootstrap.h
changeset 1109:700c5ab26a63
prev1100:50e702af9373
author nkeynes
date Tue Nov 29 17:52:43 2011 +1000 (12 years ago)
permissions -rw-r--r--
last change Refactor event processing into sh4_handle_pending_events()
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 */
.