X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=mx%2Flinux%2Fmx_flasher.c;h=1bec2783394a838412a183155518e3b928c831d7;hb=4f936a9c6b1180ffe82b618bacade0c746cd3c18;hp=9cb5e3c5c49d49aae8dcd9c20f6dce3f75d9ae6f;hpb=9b95085363e65abae7c6044d9852150fa9c8cf4c;p=megadrive.git diff --git a/mx/linux/mx_flasher.c b/mx/linux/mx_flasher.c index 9cb5e3c..1bec278 100644 --- a/mx/linux/mx_flasher.c +++ b/mx/linux/mx_flasher.c @@ -13,16 +13,16 @@ * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include #include @@ -47,7 +47,8 @@ static const struct { #define VERSION "0.91" -#define IO_BLK_SIZE 0x2000 /* 8K */ +//#define IO_BLK_SIZE 0x2000 /* 8K - unreliable? */ +#define IO_BLK_SIZE 0x800 #define IO_RAM_BLK_SIZE 256 #define CMD_ATM_READY 0x22 @@ -1003,7 +1004,8 @@ breakloop: if (do_check && (w_fname[ret - 4] == '.' || w_fname[ret - 3] == '.' || w_fname[ret - 2] == '.') && strcasecmp(&w_fname[ret - 4], ".gen") != 0 && - strcasecmp(&w_fname[ret - 4], ".bin") != 0) { + strcasecmp(&w_fname[ret - 4], ".bin") != 0 && + strcasecmp(&w_fname[ret - 4], ".32x") != 0) { fprintf(stderr, "\"%s\" doesn't look like a game ROM, aborting " "(use -f to disable this check)\n", w_fname); return 1; @@ -1070,28 +1072,6 @@ breakloop: goto end; } - /* set mode */ - if (mx_mode || w_fsize > 0x200000) { - if (mx_mode == 0) - mx_mode = '3'; - printf("MX mode set to "); - switch (mx_mode) { - case '1': - printf("2M with RAM.\n"); - mx_mode = C_MODE_2M_RAM; - break; - case '2': - printf("4M, no RAM.\n"); - mx_mode = C_MODE_4M_NORAM; - break; - default: - printf("4M with RAM.\n"); - mx_mode = C_MODE_4M_RAM; - break; - } - set_ram_mode(device, mx_mode); - } - /* erase */ if (do_erase_size != 0) { if (erase_method) @@ -1147,6 +1127,28 @@ breakloop: fprintf(stderr, "warning: failed to save RAM filename\n"); } + /* set mode */ + if (mx_mode || w_fsize > 0x200000) { + if (mx_mode == 0) + mx_mode = '3'; + printf("MX mode set to "); + switch (mx_mode) { + case '1': + printf("2M with RAM.\n"); + mx_mode = C_MODE_2M_RAM; + break; + case '2': + printf("4M, no RAM.\n"); + mx_mode = C_MODE_4M_NORAM; + break; + default: + printf("4M with RAM.\n"); + mx_mode = C_MODE_4M_RAM; + break; + } + set_ram_mode(device, mx_mode); + } + /* read flash */ if (do_read && r_fname == NULL) { ret = read_filename(device, fname_buff, sizeof(fname_buff), FILENAME_ROM0);