OSDN Git Service

removed wrong tag
[unagi/old-svn-converted.git] / client / tag / 0.6.2 / unagi.c
diff --git a/client/tag/0.6.2/unagi.c b/client/tag/0.6.2/unagi.c
deleted file mode 100644 (file)
index 58fc3b0..0000000
+++ /dev/null
@@ -1,332 +0,0 @@
-/*
-famicom ROM cartridge utility - unagi
-command line interface, config file parser
-
-Copyright (C) 2008-2009 ±·³«È¯¶¨Æ±Áȹç
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "memory_manage.h"
-#include "type.h"
-#include "reader_master.h"
-#include "giveio.h"
-#include "file.h"
-#include "script.h"
-#include "header.h"
-#include "textutil.h"
-#include "config.h"
-#include "flashmemory.h"
-
-static int flag_get(const char *flag, struct st_config *c)
-{
-       while(*flag != '\0'){
-               switch(*flag){
-               case 'S': case 's':
-                       c->backupram = CONFIG_OVERRIDE_TRUE;
-                       break;
-               case 'H': case 'h':
-                       c->mirror = MIRROR_HORIZONAL;
-                       break;
-               case 'V': case 'v':
-                       c->mirror = MIRROR_VERTICAL;
-                       break;
-               case '_':
-                       break;
-               case 'r':
-                       c->syntaxtest = 1;
-                       break;
-               default:
-                       return NG;
-               }
-               flag++;
-       }
-       return OK;
-}
-//patch... for reader_hongkongfc.c
-extern int hongkong_flash_patch;
-static const char PREFIX_CONFIG_ERROR[] = "config error:";
-static int config_file_load(struct st_config *c)
-{
-       char *buf;
-       int size = 0;
-       c->reader = NULL;
-       buf = buf_load_full("unagi.cfg", &size);
-       if(buf == NULL){
-               printf("%s config file open error\n", PREFIX_CONFIG_ERROR);
-               return NG;
-       }
-       char **text;
-       text = Malloc(sizeof(char*) * TEXT_MAXLINE);
-       const int text_num = text_load(buf, size, text);
-       if(text_num == 0){
-               printf("%s script line too much\n", PREFIX_CONFIG_ERROR);
-               Free(buf);
-               Free(text);
-               return NG;
-       }
-       int i;
-       for(i=0; i<text_num; i++){
-               char *word[TEXT_MAXWORD];
-               word_load(text[i], word);
-               if(word[0][0] == '#'){
-                       continue;
-               }
-               if(strcmp("DRIVER", word[0]) == 0){
-                       c->reader = reader_driver_get(word[1]);
-               }else if(strcmp("HONGKONG_FLASH", word[0]) == 0){
-                       hongkong_flash_patch = 0;
-                       if(strcmp("0.5.3", word[1]) == 0){
-                               hongkong_flash_patch = 1;
-                       }
-               }else if((DEBUG == 1) && (strcmp("WRITE_WAIT", word[0]) == 0)){
-                       if(value_get(word[1], &(c->write_wait)) == NG){
-                               printf("%s write_wait parameter is illigal", PREFIX_CONFIG_ERROR);
-                               Free(buf);
-                               Free(text);
-                               return NG;
-                       }
-               }else if(strcmp("TEST_DEVICE", word[0]) == 0){
-                       if(DEBUG == 1){
-                               strncpy(c->flash_test_device, word[1], CONFIG_STR_LENGTH);
-                       }
-               }else if(strcmp("TEST_MAPPER", word[0]) == 0){
-                       if(DEBUG == 1){
-                               strncpy(c->flash_test_mapper, word[1], CONFIG_STR_LENGTH);
-                       }
-               }else{
-                       printf("%s unknown config title %s", PREFIX_CONFIG_ERROR, word[1]);
-                       Free(buf);
-                       Free(text);
-                       return NG;
-               }
-       }
-       
-       Free(text);
-       if(c->reader == NULL){
-               printf("%s hardware not selected or not found\n", PREFIX_CONFIG_ERROR);
-               Free(buf);
-               return NG;
-       }
-       Free(buf);
-       return OK;
-}
-
-static int flash_pointer_init(const char *device, const struct flash_driver **f)
-{
-       *f = flash_driver_get(device);
-       if(*f == NULL){
-               printf("%s unknown flash device %s\n", PREFIX_CONFIG_ERROR, device);
-               return NG;
-       }
-       return OK;
-}
-
-enum{
-       ARGC_MODE = 1,
-       ARGC_SCRIPTFILE,
-       //DUMP MODE
-       ARGC_DUMP_OUT_NESFILE,
-       ARGC_DUMP_FLAG,
-       ARGC_DUMP_MAPPER,
-       //RAM RW MODE
-       ARGC_READ_OUT_RAMFILE = ARGC_DUMP_OUT_NESFILE,
-       ARGC_WRITE_IN_RAMFILE = ARGC_DUMP_OUT_NESFILE,
-       ARGC_RW_NUM,
-       //PROGRAM MODE
-       ARGC_PROGRAM_IN_NESFILE = ARGC_DUMP_OUT_NESFILE,
-       ARGC_PROGRAM_CPU_DEVICE,
-       ARGC_PROGRAM_PPU_DEVICE,
-       //TESTMODE
-       ARGC_TEST_OPTION = ARGC_SCRIPTFILE,
-       ARGC_TEST_FILE,
-       ARGC_TEST_NUM
-};
-
-static int config_init(const int argc, const char **argv, struct st_config *c)
-{
-       c->script = argv[ARGC_SCRIPTFILE];
-       c->romimage = NULL;
-       c->ramimage = NULL;
-       c->mapper = CONFIG_OVERRIDE_UNDEF;
-       c->mirror = CONFIG_OVERRIDE_UNDEF;
-       c->backupram = CONFIG_OVERRIDE_UNDEF;
-       c->mapper = CONFIG_OVERRIDE_UNDEF;
-       c->syntaxtest = 0;
-       c->cpu_flash_driver = &FLASH_DRIVER_UNDEF;
-       c->ppu_flash_driver = &FLASH_DRIVER_UNDEF;
-       c->write_wait = 0;
-       //mode ÊÌ target file ½é´ü²½
-       switch(argv[ARGC_MODE][0]){
-       case 'd':
-               c->mode = MODE_ROM_DUMP;
-               c->romimage = argv[ARGC_DUMP_OUT_NESFILE];
-               break;
-       case 'r':
-               c->mode = MODE_RAM_READ;
-               c->ramimage = argv[ARGC_READ_OUT_RAMFILE];
-               break;
-       case 'w':
-               c->mode = MODE_RAM_WRITE;
-               c->ramimage = argv[ARGC_WRITE_IN_RAMFILE];
-               break;
-       case 'f':
-               c->mode = MODE_ROM_PROGRAM;
-               c->romimage = argv[ARGC_PROGRAM_IN_NESFILE];
-               //ÍÆÎ̤¬¾¯¤Ê¤¤ ROM ¤ÎµÍ¤áÊý¤Î¥«¥¹¥¿¥Þ¥¤¥º
-               switch(argv[ARGC_MODE][1]){
-               case '\0':
-                       c->transtype_cpu = VALUE_TRANSTYPE_TOP;
-                       c->transtype_ppu = VALUE_TRANSTYPE_TOP;
-                       break;
-               case 't':
-                       c->transtype_cpu = VALUE_TRANSTYPE_TOP;
-                       break;
-               case 'b':
-                       c->transtype_cpu = VALUE_TRANSTYPE_BOTTOM;
-                       break;
-               default:
-                       printf("%s unkown flash trans mode cpu %c\n", PREFIX_CONFIG_ERROR, argv[ARGC_MODE][1]);
-                       return NG;
-               }
-               if(argv[ARGC_MODE][1] == '\0'){
-                       break;
-               }
-               switch(argv[ARGC_MODE][2]){
-               case '\0':
-               case 't':
-                       c->transtype_ppu = VALUE_TRANSTYPE_TOP;
-                       break;
-               case 'b':
-                       c->transtype_ppu = VALUE_TRANSTYPE_BOTTOM;
-                       break;
-               default:
-                       printf("%s unkown flash trans mode ppu %c\n", PREFIX_CONFIG_ERROR, argv[ARGC_MODE][2]);
-                       return NG;
-               }
-               break;
-       case 't':
-               if(DEBUG == 1){
-                       c->mode = MODE_TEST;
-                       break;
-               }
-               //²¼¤Ø
-       default:
-               printf("%s unkown mode %s\n", PREFIX_CONFIG_ERROR, argv[ARGC_MODE]);
-               return NG;
-       };
-       if(config_file_load(c) == NG){
-               return NG;
-       }
-       /*mode ÊÌ argc check. 
-       DEBUG==0  argc: 4,5,6
-       DEBUG==1  argc: 3,4,5,6
-       */
-       switch(c->mode){
-       case MODE_ROM_DUMP:{
-               int flag_error = OK, mapper_error = OK;
-               switch(argc){
-               case 3:
-                       return NG;
-               case 5:
-                       flag_error = flag_get(argv[ARGC_DUMP_FLAG], c);
-                       break;
-               case 6:
-                       flag_error = flag_get(argv[ARGC_DUMP_FLAG], c);
-                       mapper_error = value_get(argv[ARGC_DUMP_MAPPER], &c->mapper);
-                       break;
-               }
-               if(flag_error != OK){
-                       printf("%s unknown flag %s\n", PREFIX_CONFIG_ERROR, argv[ARGC_DUMP_FLAG]);
-                       return NG;
-               }
-               if(mapper_error != OK){
-                       printf("%s unknown mapper %s\n", PREFIX_CONFIG_ERROR, argv[ARGC_DUMP_MAPPER]);
-                       return NG;
-               }
-               }break;
-       case MODE_RAM_READ:
-       case MODE_RAM_WRITE:
-               if(argc != ARGC_RW_NUM){
-                       printf("%s too many argument\n", PREFIX_CONFIG_ERROR);
-                       return NG;
-               }
-               break;
-       case MODE_ROM_PROGRAM:
-               if(c->reader->flash_support == false){
-                       puts("this reader is not supported flash memory programming mode");
-                       return NG;
-               }
-               switch(argc){
-               case 3:
-               case 4:
-                       printf("%s few argument\n", PREFIX_CONFIG_ERROR);
-                       return NG;
-               case 5:
-                       if(flash_pointer_init(argv[ARGC_PROGRAM_CPU_DEVICE], &(c->cpu_flash_driver)) == NG){
-                               return NG;
-                       }
-                       break;
-               case 6:
-                       if(flash_pointer_init(argv[ARGC_PROGRAM_CPU_DEVICE], &(c->cpu_flash_driver)) == NG){
-                               return NG;
-                       }
-                       if(flash_pointer_init(argv[ARGC_PROGRAM_PPU_DEVICE], &(c->ppu_flash_driver)) == NG){
-                               return NG;
-                       }
-                       break;
-               }
-               break;
-       }
-
-       return OK;
-}
-
-#include "version.h"
-int main(int c, char **v)
-{
-       struct st_config config;
-       int config_result = NG;
-       mm_init();
-       switch(c){
-       case 3: //t testmode target
-               if(DEBUG == 0){
-                       goto usage;
-               }
-               //²¼¤Ø
-       case 4: //mode script target
-       case 5:
-               //mode script target flag
-               //mode script target cpu_flash_device
-       case 6:
-               //mode script target flag mapper
-               //mode script target cpu_flash_device ppu_flash_device
-               config_result = config_init(c, (const char **) v, &config);
-               break;
-       usage:
-       default:
-               printf("famicom ROM cartridge utility - unagi version %s\n", STR_VERSION);
-               printf("%s [mode] [mapper script] [target file] [flag]\n", v[0]);
-               printf("mode - [d]ump ROM / [r]ead RAM/ [w]rite RAM/ [f]lash memory program\n");
-               break;
-       }
-       if((config.mode != MODE_TEST) && (config_result == OK)){
-               script_load(&config);
-       }
-       mm_end();
-       return 0;
-}