Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "gameboy.h"
- #include "internal.h"
- /* Add mapper --*/
- int cartridge_load (struct cartridge *cart, FILE *cartmem) {
- static ks_uint8 nintendo_magicnumber[] =
- { 0xCE, 0xED, 0x66, 0x66, 0xCC, 0x0D, 0x00, 0x0B, 0x03, 0x73, 0x00, 0x83, 0x00, 0x0C, 0x00, 0x0D,
- 0x00, 0x08, 0x11, 0x1F, 0x88, 0x89, 0x00, 0x0E, 0xDC, 0xCC, 0x6E, 0xE6, 0xDD, 0xDD, 0xD9, 0x99,
- 0xBB, 0xBB, 0x67, 0x63, 0x6E, 0x0E, 0xEC, 0xCC, 0xDD, 0xDC, 0x99, 0x9F, 0xBB, 0xB9, 0x33, 0x3E };
- ks_bool bat;
- ks_bool ram, cgb, sgb;
- ks_uint8 magicnumber_buffer[sizeof(nintendo_magicnumber)];
- ks_uint8 *promworks;
- ks_uint8 *sramworks;
- int cartridge_mbc0_init (struct cartridge *cartridge);
- int cartridge_mbc1_init (struct cartridge *cartridge);
- int cartridge_mbc2_init (struct cartridge *cartridge);
- void cpu_reset (struct cpu *cpu);
- int ppu_reset (struct ppu *ppu);
- int ppu_cgb_mode (struct ppu *ppu);
- int ppu_dmg_mode (struct ppu *ppu);
- //extern int cartridge_mbc0_init (struct cartridge *cartridge);
- ks_int sig = -1;
- ks_int promsize;
- ks_int sramsize;
- ks_int calc;
- ks_int type;
- assert (cart != ks_null);
- assert (cartmem != ks_null);
- bat = ks_false;
- ram = ks_false;
- cgb = ks_false;
- sgb = ks_false;
- sramworks = ks_null;
- promworks = ks_null;
- if (fseek (cartmem, 0x104, SEEK_SET) != 0)
- return -1;
- if (fread (& magicnumber_buffer[0], sizeof (nintendo_magicnumber), 1, cartmem)
- != 1)
- return -1;
- if (memcmp (nintendo_magicnumber,
- magicnumber_buffer, sizeof (magicnumber_buffer) != 0))
- return -1;
- if (fseek (cartmem, 0x134, SEEK_SET) != 0)
- return -1;
- if (fread (& cart->infochunk[0], sizeof (cart->infochunk), 1, cartmem)
- != 1)
- return -1;
- /* x143/x146 - Check CGB/ SGB */
- cgb = !!(cart->infochunk[15] & 0x80);
- sgb = !!(cart->infochunk[18] == 0x03);
- /*
- 00h ROM ONLY 19h MBC5
- 01h MBC1 1Ah MBC5+RAM
- 02h MBC1+RAM 1Bh MBC5+RAM+BATTERY
- 03h MBC1+RAM+BATTERY 1Ch MBC5+RUMBLE
- 05h MBC2 1Dh MBC5+RUMBLE+RAM
- 06h MBC2+BATTERY 1Eh MBC5+RUMBLE+RAM+BATTERY
- 08h ROM+RAM 20h MBC6
- 09h ROM+RAM+BATTERY 22h MBC7+SENSOR+RUMBLE+RAM+BATTERY
- 0Bh MMM01
- 0Ch MMM01+RAM
- 0Dh MMM01+RAM+BATTERY
- 0Fh MBC3+TIMER+BATTERY
- 10h MBC3+TIMER+RAM+BATTERY FCh POCKET CAMERA
- 11h MBC3 FDh BANDAI TAMA5
- 12h MBC3+RAM FEh HuC3
- 13h MBC3+RAM+BATTERY FFh HuC1+RAM+BATTERY
- */
- /* check error device */
- switch (cart->infochunk[19]) {
- case 0x00:
- type = MBC_0;
- break;
- case 0x01:
- case 0x02:
- case 0x03:
- type = MBC_1;
- break;
- case 0x05:
- case 0x06:
- type = MBC_2;
- break;
- case 0x08:
- case 0x09:
- type = MBC_0;
- break;
- case 0x0B:
- case 0x0C:
- case 0x0D:
- type = MMM0;
- break;
- case 0x0F:
- case 0x10:
- case 0x11:
- case 0x12:
- case 0x13:
- type = MBC_3;
- break;
- case 0x19:
- case 0x1A:
- case 0x1B:
- case 0x1C:
- case 0x1D:
- case 0x1E:
- type = MBC_5;
- break;
- case 0x20:
- type = MBC_6;
- break;
- case 0x22:
- type = MBC_7;
- break;
- case 0xFC:
- type = POCKER_CAM;
- break;
- case 0xFD:
- type = TAMA5;
- break;
- case 0xFE:
- type = HUCL3;
- break;
- case 0xFF:
- type = HUCL1;
- break;
- default :
- return -1;
- }
- /* check prom size */
- switch (cart->infochunk[20]) {
- case 0x00: promsize = 2; break;
- case 0x01: promsize = 4; break;
- case 0x02: promsize = 8; break;
- case 0x03: promsize =16; break;
- case 0x04: promsize =32; break;
- case 0x05: promsize =64; if (type == MBC_1) promsize = 63; break;
- case 0x06: promsize =128; if (type == MBC_1) promsize = 125; break; break;
- case 0x07: promsize =256; break;
- case 0x08: promsize =512; break;
- case 0x52: promsize =72; break;
- case 0x53: promsize =80; break;
- case 0x54: promsize =96; break;
- default : return -1;
- }
- /* check sram size */
- switch (cart->infochunk[21]) {
- case 0x00: sramsize = 0; break;
- case 0x01: sramsize = 1; break; /* 2K sram, same as 8K */
- case 0x02: sramsize = 1; break;
- case 0x03: sramsize = 4; break;
- case 0x04: sramsize =16; break;
- case 0x05: sramsize = 8; break;
- default : return -1;
- }
- /* init prom and sram */
- promworks = (ks_uint8 *)malloc (promsize * 0x4000);
- sramworks = (ks_uint8 *)malloc (sramsize * 0x2000);
- assert (promworks != ks_null);
- assert (sramworks != ks_null); /* random data in init time */
- fseek (cartmem, 0, SEEK_END);
- calc = ftell(cartmem);
- if (calc != promsize * 0x4000)
- promsize = calc / 0x4000;
- if (fseek (cartmem, 0, SEEK_SET) != 0)
- goto _cleanup;
- if (fread (promworks, promsize * 0x4000, 1, cartmem) != 1)
- goto _cleanup;
- if (cart->promworks != ks_null)
- free (cart->promworks);
- if (cart->sramworks != ks_null)
- free (cart->sramworks);
- cart->promworks = promworks;
- cart->sramworks = sramworks;
- cart->cbgmode = cgb;
- cart->sgbmode = sgb;
- cart->promsize = promsize;
- cart->sramsize = sramsize;
- cart->type = type;
- cart->battery = bat;
- /* reset cart chip device */
- switch (type) {
- case MBC_0:
- cartridge_mbc0_init (cart);
- break;
- case MBC_1:
- case MBC_2:
- case MBC_3:
- case MBC_4:
- case MBC_5:
- case MBC_6:
- case MBC_7:
- case TAMA5:
- case HUCL1:
- case HUCL3:
- case MMM0:
- case POCKER_CAM:
- default :assert (0); /*never reach here */
- }
- if (cgb != ks_false)
- ppu_cgb_mode (cart->gb->lh5028);
- else
- ppu_dmg_mode (cart->gb->lh5028);
- cpu_reset (cart->gb->lr35902);
- ppu_reset (cart->gb->lh5028);
- /* set std freq. */
- cart->gb->mach_tools = (struct machine_setup *)& std_machine;
- return 0;
- _cleanup:
- free (sramworks);
- free (promworks);
- return -1;
- }
- int cartridge_init (struct cartridge **cartridge) {
- struct cartridge *cartridge_ =ks_null;
- assert (cartridge != ks_null);
- cartridge_ = (struct cartridge *)
- calloc (sizeof (struct cartridge), 1);
- cartridge_->clks = ks_null;
- assert (cartridge_ != ks_null);
- * cartridge = cartridge_;
- /* Settings cart type desc init --*/
- cartridge_->cartgt[0x00] = "ROM ONLY";
- cartridge_->cartgt[0x01] = "ROM+MBC1";
- cartridge_->cartgt[0x02] = "ROM+MBC1+RAM";
- cartridge_->cartgt[0x03] = "ROM+MBC1+RAM+Battery";
- cartridge_->cartgt[0x05] = "ROM+MBC2";
- cartridge_->cartgt[0x06] = "ROM+MBC2+Battery";
- cartridge_->cartgt[0x08] = "ROM+RAM";
- cartridge_->cartgt[0x09] = "ROM+RAM+Battery";
- cartridge_->cartgt[0x0B] = "ROM+MMM01";
- cartridge_->cartgt[0x0C] = "ROM+MMM01+RAM";
- cartridge_->cartgt[0x0D] = "ROM+MMM01+RAM+Battery";
- cartridge_->cartgt[0x0F] = "ROM+MBC3+Battery+Timer";
- cartridge_->cartgt[0x10] = "ROM+MBC3+RAM+Battery+Timer";
- cartridge_->cartgt[0x11] = "ROM+MBC3";
- cartridge_->cartgt[0x12] = "ROM+MBC3+RAM";
- cartridge_->cartgt[0x13] = "ROM+MBC3+RAM+Battery";
- cartridge_->cartgt[0x15] = "ROM+MBC4";
- cartridge_->cartgt[0x16] = "ROM+MBC4+RAM";
- cartridge_->cartgt[0x17] = "ROM+MBC4+RAM+Battery";
- cartridge_->cartgt[0x19] = "ROM+MBC5";
- cartridge_->cartgt[0x1A] = "ROM+MBC5+RAM";
- cartridge_->cartgt[0x1B] = "ROM+MBC5+RAM+Battery";
- cartridge_->cartgt[0x1C] = "ROM+MBC5+Rumble";
- cartridge_->cartgt[0x1D] = "ROM+MBC5+RAM+Rumble";
- cartridge_->cartgt[0x1E] = "ROM+MBC5+RAM+Battery+Rumble";
- cartridge_->cartgt[0x22] = "ROM+MBC5+Tilt";
- cartridge_->cartgt[0xFC] = "Nintendo Pocket Camera";
- cartridge_->cartgt[0xFD] = "Bandai TAMA5";
- cartridge_->cartgt[0xFE] = "Hudson HuC-3";
- cartridge_->cartgt[0xFF] = "Hudson HuC-1";
- /* Settings old licensee desc init --*/
- cartridge_->ancl[0x00] = "None";
- cartridge_->ancl[0x01] = "Nintendo"; /* homepage:https://www.nintendo.com */
- cartridge_->ancl[0x08] = "Capcom"; /* homepage:http://www.capcom.com*/
- cartridge_->ancl[0x09] = "Hot B Games"; /* wiki:https://en.wikipedia.org/wiki/Category:Hot_B_games */
- cartridge_->ancl[0x0A] = "Jaleco"; /* wiki:https://en.wikipedia.org/wiki/Jaleco*/
- cartridge_->ancl[0x0B] = "Coconuts Japan"; /* misc link:https://www.genkivideogames.com/japanese_imported_video_games.asp?pagetoshow=search&keywordtext=Coconuts%20Japan&searchtype=publisher*/
- cartridge_->ancl[0x0C] = "Elite Systems";/*wiki: https://en.wikipedia.org/wiki/Elite_Systems*/
- cartridge_->ancl[0x13] = "ËA"; /*homepage: https://www.ea.com/zh-cn */
- cartridge_->ancl[0x18] = "Hudson Soft"; /*homepage: http://www.hudsonsoft.net/what-we-do/ */
- cartridge_->ancl[0x19] = "ITC Entertainment"; /*wiki: https://en.wikipedia.org/wiki/ITC_Entertainment */
- cartridge_->ancl[0x1A] = "Yanoman"; /* MobyGames:https://www.mobygames.com/company/yanoman-corporation */
- cartridge_->ancl[0x1D] = "Nippon Clary"; /* giantbomb:https://www.giantbomb.com/nippon-clary-business/3010-6837/ */
- cartridge_->ancl[0x1F] = "Virgin"; /* wiki:https://en.wikipedia.org/wiki/Virgin_Interactive */
- /* homepage: https://www.virgingames.com/quick-login */
- cartridge_->ancl[0x24] = "PCM Complete"; /* https://segaretro.org/PCM_Complete | https://www.mobygames.com/company/pcm-complete */
- cartridge_->ancl[0x25] = "San-X"; /* homepage http://www.san-x.jp*/
- cartridge_->ancl[0x28] = "Kotobuki Systems";/*wiki: https://en.wikipedia.org/wiki/Kemco*/
- cartridge_->ancl[0x29] = "SETA"; /*wiki: https://en.wikipedia.org/wiki/SETA_Corporation */
- cartridge_->ancl[0x30] = "Atari,SA"; /*wiki: https://en.wikipedia.org/wiki/Atari,_SA */
- cartridge_->ancl[0x31] = "Nintendo"; /* homepage:https://www.nintendo.com */
- cartridge_->ancl[0x32] = "Bandai"; /*homepage: http://www.bandai.com */
- cartridge_->ancl[0x33] = "GameBoyColor"; /*new licensee */
- cartridge_->ancl[0x34] = "Konami"; /*homepage: https://www.konami.com/en/*/
- cartridge_->ancl[0x35] = "Hector"; /*N/A */
- cartridge_->ancl[0x38] = "Capcom"; /* homepage:http://www.capcom.com*/
- cartridge_->ancl[0x39] = "Banpresto"; /* homepage:http://www.banpresto.jp/prize/0008.html*/
- cartridge_->ancl[0x3C] = "Entertainment i"; /* truncated, see http://gbdev.gg8.se/wiki/articles/Gameboy_ROM_Header_Info#Licensee*/
- cartridge_->ancl[0x3E] = "Gremlin"; /* wiki: https://en.wikipedia.org/wiki/Gremlin_Interactive */
- cartridge_->ancl[0x41] = "Ubisoft"; /*homepage: https://www.ubisoft.com/en-US/ */
- cartridge_->ancl[0x42] = "Atlus"; /*homepage: https://atlus.com*/
- cartridge_->ancl[0x44] = "Malibu"; /*swiki: https://strategywiki.org/wiki/Category:Malibu*/
- cartridge_->ancl[0x46] = "Angel"; /*N/A*/
- cartridge_->ancl[0x47] = "Spectrum HoloByte"; /*wiki: https://en.wikipedia.org/wiki/Spectrum_HoloByte*/
- cartridge_->ancl[0x49] = "Irem"; /* wiki: https://en.wikipedia.org/wiki/Irem */
- cartridge_->ancl[0x4A] = "Virgin"; /* wiki:https://en.wikipedia.org/wiki/Virgin_Interactive */
- /* homepage: https://www.virgingames.com/quick-login */
- cartridge_->ancl[0x4D] = "Malibu"; /*swiki: https://strategywiki.org/wiki/Category:Malibu*/
- cartridge_->ancl[0x4F] = "US.Gold"; /*wiki: https://en.wikipedia.org/wiki/U.S._Gold */
- cartridge_->ancl[0x50] = "Absolute"; /*homepgae:http://www.absolutegamez.com */
- cartridge_->ancl[0x51] = "Acclaim"; /*wiki: https://en.wikipedia.org/wiki/Acclaim_Games*/
- cartridge_->ancl[0x52] = "Activision"; /*homepage: https://www.activision.com*/
- cartridge_->ancl[0x53] = "Sammy"; /*wiki: https://en.wikipedia.org/wiki/Sammy_Corporation*/
- cartridge_->ancl[0x54] = "GameTek"; /*wiki: https://en.wikipedia.org/wiki/GameTek*/
- cartridge_->ancl[0x55] = "Park Place"; /*maybe???: https://en.wikipedia.org/wiki/List_of_Jurassic_Park_video_games*/
- cartridge_->ancl[0x56] = "LJN"; /*avgn: http://avgn.wikia.com/wiki/LJN*/
- cartridge_->ancl[0x57] = "MATCHBOX"; /*homepage: http://play.matchbox.com/en_US/*/
- cartridge_->ancl[0x59] = "Milton Bradley"; /*wiki: https://en.wikipedia.org/wiki/Milton_Bradley_Company*/
- cartridge_->ancl[0x5A] = "Mindscape"; /*wiki: https://en.wikipedia.org/wiki/Mindscape*/
- cartridge_->ancl[0x5B] = "Romstar"; /*wiki: https://en.wikipedia.org/wiki/Romstar*/
- cartridge_->ancl[0x5C] = "Kaga Create"; /*wiki: https://en.wikipedia.org/wiki/Kaga_Create*/
- cartridge_->ancl[0x5D] = "Tradewest"; /*wiki: https://en.wikipedia.org/wiki/Tradewest*/
- cartridge_->ancl[0x60] = "Titus"; /*wiki: https://en.wikipedia.org/wiki/Titus_Interactive*/
- cartridge_->ancl[0x61] = "Virgin"; /* wiki:https://en.wikipedia.org/wiki/Virgin_Interactive */
- /* homepage: https://www.virgingames.com/quick-login */
- cartridge_->ancl[0x67] = "Ocean"; /*wiki: https://en.wikipedia.org/wiki/Ocean_Software*/
- cartridge_->ancl[0x69] = "ËA"; /*homepage: https://www.ea.com/zh-cn */
- cartridge_->ancl[0x6E] = "Elite Systems";/*wiki: https://en.wikipedia.org/wiki/Elite_Systems*/
- cartridge_->ancl[0x6F] = "Electro Brain";/*wiki: https://en.wikipedia.org/wiki/Electro_Brain*/
- cartridge_->ancl[0x70] = "Atari,SA"; /*wiki: https://en.wikipedia.org/wiki/Atari,_SA */
- cartridge_->ancl[0x71] = "Interplay"; /*wiki: https://en.wikipedia.org/wiki/Interplay_Entertainment*/
- cartridge_->ancl[0x72] = "Brøderbund"; /*moby: https://www.mobygames.com/company/brderbund-software-inc*/
- cartridge_->ancl[0x73] = "Sculptured"; /*maybe??: http://closinglogogroup.wikia.com/wiki/Sculptured_Software,_Inc.*/
- cartridge_->ancl[0x75] = "SCi Games"; /*wiki: https://en.wikipedia.org/wiki/SCi_Games*/
- cartridge_->ancl[0x78] = "THQ"; /*source is:t*hq wiki: https://en.wikipedia.org/wiki/THQ*/
- cartridge_->ancl[0x79] = "Accolade"; /*wiki: https://en.wikipedia.org/wiki/Accolade_(game_company)*/
- cartridge_->ancl[0x7A] = "Triffix"; /*wiki: https://en.wikipedia.org/wiki/Triffix_Entertainment*/
- cartridge_->ancl[0x7C] = "MicroProse"; /*homepage: http://www.microprose.com*/
- cartridge_->ancl[0x7F] = "Kemco";/*wiki: https://en.wikipedia.org/wiki/Kemco*/
- cartridge_->ancl[0x80] = "Misawa"; /*nseen64: https://www.unseen64.net/tag/misawa-entertainment/*/
- cartridge_->ancl[0x83] = "LOZC G"; /*wiki: https://en.wikipedia.org/wiki/Category:LOZC_G._Amusements_games*/
- cartridge_->ancl[0x86] = "Tokuma Shoten"; /*wiki: https://en.wikipedia.org/wiki/Tokuma_Shoten*/
- cartridge_->ancl[0x8B] = "Blue Planet"; /*wiki: https://en.wikipedia.org/wiki/Blue_Planet_Software*/
- cartridge_->ancl[0x8C] = "Tokai Communications"; /*wiki: https://en.wikipedia.org/wiki/Tokai_Communications*/
- cartridge_->ancl[0x8E] = "APE Games"; /*homepage: http://www.apegames.com*/
- cartridge_->ancl[0x8F] = "I'Max"; /*No find infos */
- cartridge_->ancl[0x91] = "Spike Chunsoft"; /*wiki: https://en.wikipedia.org/wiki/Spike_Chunsoft*/
- cartridge_->ancl[0x92] = "Video System"; /*No find infos*/
- cartridge_->ancl[0x93] = "Tsuburava"; /*No find infos */
- cartridge_->ancl[0x95] = "Varie"; /*wiki: https://en.wikipedia.org/wiki/Varie*/
- cartridge_->ancl[0x96] = "Yonezawa PR21"; /*wiki: https://en.wikipedia.org/wiki/Yonezawa_PR21*/
- cartridge_->ancl[0x97] = "Kaneko"; /*wiki: https://en.wikipedia.org/wiki/Kaneko*/
- cartridge_->ancl[0x99] = "Arcade"; /*wiki: https://en.wikipedia.org/wiki/Arcade_game*/
- cartridge_->ancl[0x9A] = "Nihon Bussan"; /*wiki: https://en.wikipedia.org/wiki/Nihon_Bussan*/
- cartridge_->ancl[0x9B] = "Tecmo"; /*wiki: https://en.wikipedia.org/wiki/Tecmo*/
- cartridge_->ancl[0x9C] = "Disney"; /*wiki: https://en.wikipedia.org/wiki/Walt_Disney_Imagineering*/
- cartridge_->ancl[0x9D] = "Banpresto"; /* homepage:http://www.banpresto.jp/prize/0008.html*/
- cartridge_->ancl[0x9F] = "Nova"; /*No find infos*/
- cartridge_->ancl[0xA1] = "Hori Electric"; /* https://www.giantbomb.com/hori-electric-co-ltd/3010-5917/*/
- cartridge_->ancl[0xA2] = "Bandai"; /*homepage: http://www.bandai.com */
- cartridge_->ancl[0xA4] = "Konami"; /*homepage: https://www.konami.com/en/*/
- cartridge_->ancl[0xA6] = "Kawada"; /*No find infos*/
- cartridge_->ancl[0xA7] = "Takara"; /*wiki: https://en.wikipedia.org/wiki/Takara**/
- cartridge_->ancl[0xA9] = "Technōs Japan"; /*wiki: https://en.wikipedia.org/wiki/Technōs_Japan*/
- cartridge_->ancl[0xAA] = "Brøderbund"; /*moby: https://www.mobygames.com/company/brderbund-software-inc*/
- cartridge_->ancl[0xAC] = "Toei Animation"; /*homepage: http://toei-animation-usa.com*/
- cartridge_->ancl[0xAD] = "Toho"; /*No find infos*/
- cartridge_->ancl[0xAF] = "Namco"; /*homepage: https://www.bandainamcoent.com*/
- cartridge_->ancl[0xB0] = "Acclaim"; /*wiki: https://en.wikipedia.org/wiki/Acclaim_Games*/
- cartridge_->ancl[0xB1] = "ASCII|Nexoft"; /*moby: http://www.mobygames.com/company/nexoft-corporation*/
- cartridge_->ancl[0xB2] = "Bandai"; /*homepage: http://www.bandai.com */
- cartridge_->ancl[0xB4] = "Enix"; /*homepage: https://en.wikipedia.org/wiki/Enix*/
- cartridge_->ancl[0xB6] = "HAL"; /*wiki: https://en.wikipedia.org/wiki/HAL_Laboratory*/
- cartridge_->ancl[0xB7] = "SNK"; /*wiki: https://en.wikipedia.org/wiki/SNK*/
- cartridge_->ancl[0xB9] = "Pony Canyon"; /*wiki: https://en.wikipedia.org/wiki/Pony_Canyon*/
- cartridge_->ancl[0xBA] = "Culture Brain"; /*wiki: https://en.wikipedia.org/wiki/Culture_Brain*/
- cartridge_->ancl[0xBB] = "Sunsoft"; /*wiki: https://en.wikipedia.org/wiki/Sunsoft*/
- cartridge_->ancl[0xBD] = "Sony Imagesoft"; /*wiki: https://en.wikipedia.org/wiki/Sony_Imagesoft*/
- cartridge_->ancl[0xBF] = "Sammy"; /*wiki: https://en.wikipedia.org/wiki/Sammy_Corporation*/
- cartridge_->ancl[0xC0] = "Taito"; /*wiki: https://en.wikipedia.org/wiki/Taito*/
- cartridge_->ancl[0xC2] = "Kemco";/*wiki: https://en.wikipedia.org/wiki/Kemco*/
- cartridge_->ancl[0xC3] = "Square"; /*wiki: https://en.wikipedia.org/wiki/Square_(company)*/
- cartridge_->ancl[0xC4] = "Tokuma Shoten"; /*wiki: https://en.wikipedia.org/wiki/Tokuma_Shoten*/
- cartridge_->ancl[0xC5] = "Data East"; /*wiki: https://en.wikipedia.org/wiki/Data_East*/
- cartridge_->ancl[0xC6] = "Tonkin House"; /*wiki: https://en.wikipedia.org/wiki/Category:Tonkin_House_games*/
- cartridge_->ancl[0xC8] = "Koei"; /*wiki: https://en.wikipedia.org/wiki/Koei*/
- cartridge_->ancl[0xC9] = "UFL"; /*No find infos*/
- cartridge_->ancl[0xCA] = "Ultra"; /*wiki: https://en.wikipedia.org/wiki/Ultra_Games*/
- cartridge_->ancl[0xCB] = "VAP"; /*wiki: https://en.wikipedia.org/wiki/VAP_%28company%29*/
- cartridge_->ancl[0xCC] = "Use"; /*No Find infos*/
- cartridge_->ancl[0xCD] = "Meldac"; /*wiki: https://en.wikipedia.org/wiki/Meldac*/
- cartridge_->ancl[0xCE] = "Pony Canyon"; /*wiki: https://en.wikipedia.org/wiki/Pony_Canyon*/
- cartridge_->ancl[0xCF] = "Angel"; /*N/A*/
- cartridge_->ancl[0xD0] = "Taito"; /*wiki: https://en.wikipedia.org/wiki/Taito*/
- cartridge_->ancl[0xD1] = "SOFEL"; /*wiki: https://en.wikipedia.org/wiki/SOFEL*/
- cartridge_->ancl[0xD2] = "Quest"; /*No find infos*/
- cartridge_->ancl[0xD3] = "Sigma Enterprises"; /*maybe?: http://sigma-enterprises.com*/
- cartridge_->ancl[0xD4] = "Ask Kodansha"; /*https://www.giantbomb.com/ask-kodansha/3010-3528/*/
- cartridge_->ancl[0xD6] = "Kaga Create"; /*wiki: https://en.wikipedia.org/wiki/Kaga_Create*/
- cartridge_->ancl[0xD7] = "Copya Systems"; /*wiki: https://en.wikipedia.org/wiki/Category:Copya_Systems_games*/
- cartridge_->ancl[0xD9] = "Banpresto"; /* homepage:http://www.banpresto.jp/prize/0008.html*/
- cartridge_->ancl[0xDA] = "Tomy"; /*wiki: https://en.wikipedia.org/wiki/Tomy*/
- cartridge_->ancl[0xDB] = "LJN"; /*avgn: http://avgn.wikia.com/wiki/LJN*/
- cartridge_->ancl[0xDD] = "Masaya Games"; /*wiki: https://en.wikipedia.org/wiki/Masaya_Games*/
- cartridge_->ancl[0xDE] = "Human"; /*No find infos */
- cartridge_->ancl[0xDF] = "Altron"; /*wiki: https://en.wikipedia.org/wiki/Altron*/
- cartridge_->ancl[0xE0] = "Jaleco"; /* wiki:https://en.wikipedia.org/wiki/Jaleco*/
- cartridge_->ancl[0xE1] = "Towa Chiki"; /*wiki: https://en.wikipedia.org/wiki/Towa_Chiki*/
- cartridge_->ancl[0xE2] = "Uutaka"; /*No find infos*/
- cartridge_->ancl[0xE3] = "Varie"; /*wiki: https://en.wikipedia.org/wiki/Varie*/
- cartridge_->ancl[0xE5] = "Epoch"; /*wiki: https://en.wikipedia.org/wiki/Epoch_Co.*/
- cartridge_->ancl[0xE7] = "Athena"; /*wiki: https://en.wikipedia.org/wiki/Athena_(company)*/
- cartridge_->ancl[0xE8] = "Asmik ACE"; /*wiki: https://en.wikipedia.org/wiki/Asmik_Ace*/
- cartridge_->ancl[0xE9] = "Natsume"; /*Homepage: http://www.natsume.com*/
- cartridge_->ancl[0xEA] = "King_Records"; /*wiki: https://en.wikipedia.org/wiki/King_Records_(Japan)*/
- cartridge_->ancl[0xEB] = "Atlus"; /*homepage: https://atlus.com*/
- cartridge_->ancl[0xEC] = "Epic Records"; /*wiki: https://en.wikipedia.org/wiki/Epic_Records_Japan*/
- cartridge_->ancl[0xEE] = "IGS"; /*wiki: https://en.wikipedia.org/wiki/International_Games_System*/
- cartridge_->ancl[0xF0] = "a wave"; /*No find infos*/
- cartridge_->ancl[0xF3] = "Extreme Entertainment"; /**Moby: https://www.mobygames.com/company/extreme-entertainment-group-inc */
- cartridge_->ancl[0xFF] = "LJN"; /*avgn: http://avgn.wikia.com/wiki/LJN*/
- /* Settings new licensee desc init --*/
- cartridge_->curl[0] = "None";
- cartridge_->curl[1] = "Nintendo"; /* homepage:https://www.nintendo.com */
- cartridge_->curl[8] = "Capcom"; /* homepage:http://www.capcom.com*/
- cartridge_->curl[13] = "ËA"; /*homepage: https://www.ea.com/zh-cn */
- cartridge_->curl[18] = "Hudson Soft"; /*homepage: http://www.hudsonsoft.net/what-we-do/ */
- cartridge_->curl[19] = "B-AI";
- cartridge_->curl[20] = "KSS"; /* wiki: https://en.wikipedia.org/wiki/KSS_(company) */
- cartridge_->curl[22] = "POW"; /* homepage: https://www.virgingames.com/quick-login */
- cartridge_->curl[24] = "PCM Complete"; /* https://segaretro.org/PCM_Complete | https://www.mobygames.com/company/pcm-complete */
- cartridge_->curl[25] = "San-X"; /* homepage http://www.san-x.jp*/
- cartridge_->curl[28] = "Kemco Japan";/*homepage: https://kemco-games.com/global/index.html*/
- cartridge_->curl[29] = "SETA"; /*wiki: https://en.wikipedia.org/wiki/SETA_Corporation */
- cartridge_->curl[30] = "Viacom"; /*wiki: https://en.wikipedia.org/wiki/Viacom */
- cartridge_->curl[31] = "Nintendo"; /* homepage:https://www.nintendo.com */
- cartridge_->curl[32] = "Bandai"; /*bandia? homepage: http://www.bandai.com */
- cartridge_->curl[33] = "Ocean"; /*wiki: https://en.wikipedia.org/wiki/Ocean_Software*/
- cartridge_->curl[34] = "Konami"; /*homepage: https://www.konami.com/en/*/
- cartridge_->curl[35] = "Hector"; /*N/A */
- cartridge_->curl[37] = "Taito"; /*wiki: https://en.wikipedia.org/wiki/Taito*/
- cartridge_->curl[38] = "Hudson"; /*homepage: http://www.hudsonsoft.net/what-we-do/ */
- cartridge_->curl[39] = "Banpresto"; /* homepage:http://www.banpresto.jp/prize/0008.html*/
- cartridge_->curl[41] = "Ubisoft"; /*homepage: https://www.ubisoft.com/en-US/ */
- cartridge_->curl[42] = "Atlus"; /*homepage: https://atlus.com*/
- cartridge_->curl[44] = "Malibu"; /*swiki: https://strategywiki.org/wiki/Category:Malibu*/
- cartridge_->curl[46] = "Angel"; /*N/A*/
- cartridge_->curl[47] = "Pullet-Proof";
- cartridge_->curl[49] = "Irem"; /* wiki: https://en.wikipedia.org/wiki/Irem */
- cartridge_->curl[50] = "Absolute"; /*homepgae:http://www.absolutegamez.com */
- cartridge_->curl[51] = "Acclaim"; /*wiki: https://en.wikipedia.org/wiki/Acclaim_Games*/
- cartridge_->curl[52] = "Activision"; /*homepage: https://www.activision.com*/
- cartridge_->curl[53] = "American Sammy"; /*wiki: https://en.wikipedia.org/wiki/Sammy_Corporation*/
- cartridge_->curl[54] = "Konami"; /*homepage: https://www.konami.com/en/*/
- cartridge_->curl[55] = "Hi-TECH";
- cartridge_->curl[56] = "LJN"; /*avgn: http://avgn.wikia.com/wiki/LJN*/
- cartridge_->curl[57] = "MATCHBOX"; /*homepage: http://play.matchbox.com/en_US/*/
- cartridge_->curl[58] = "Mattel"; /*wiki: https://en.wikipedia.org/wiki/Mattel*/
- cartridge_->curl[59] = "Milton Bradley"; /*wiki: https://en.wikipedia.org/wiki/Milton_Bradley_Company*/
- cartridge_->curl[60] = "Titus"; /*wiki: https://en.wikipedia.org/wiki/Titus_Interactive*/
- cartridge_->curl[61] = "Virgin"; /* wiki:https://en.wikipedia.org/wiki/Virgin_Interactive */
- /* homepage: https://www.virgingames.com/quick-login */
- cartridge_->curl[64] = "LucasArts";/*wiki: https://en.wikipedia.org/wiki/LucasArts*/
- cartridge_->curl[67] = "Ocean"; /*wiki: https://en.wikipedia.org/wiki/Ocean_Software*/
- cartridge_->curl[69] = "ËA"; /*homepage: https://www.ea.com/zh-cn */
- cartridge_->curl[70] = "Atari,SA"; /*wiki: https://en.wikipedia.org/wiki/Atari,_SA */
- cartridge_->curl[71] = "Interplay"; /*wiki: https://en.wikipedia.org/wiki/Interplay_Entertainment*/
- cartridge_->curl[72] = "Brøderbund"; /*moby: https://www.mobygames.com/company/brderbund-software-inc*/
- cartridge_->curl[73] = "Sculptured"; /*maybe??: http://closinglogogroup.wikia.com/wiki/Sculptured_Software,_Inc.*/
- cartridge_->curl[75] = "SCi Games"; /*wiki: https://en.wikipedia.org/wiki/SCi_Games*/
- cartridge_->curl[78] = "THQ"; /*source is:t*hq wiki: https://en.wikipedia.org/wiki/THQ*/
- cartridge_->curl[79] = "Accolade"; /*wiki: https://en.wikipedia.org/wiki/Accolade_(game_company)*/
- cartridge_->curl[80] = "Misawa"; /*nseen64: https://www.unseen64.net/tag/misawa-entertainment/*/
- cartridge_->curl[83] = "LOZC G"; /*wiki: https://en.wikipedia.org/wiki/Category:LOZC_G._Amusements_games*/
- cartridge_->curl[86] = "Tokuma Shoten"; /*wiki: https://en.wikipedia.org/wiki/Tokuma_Shoten*/
- cartridge_->curl[87] = "Tsukuda Original"; /*https://segaretro.org/Tsukuda_Original*/
- cartridge_->curl[91] = "Spike Chunsoft"; /*wiki: https://en.wikipedia.org/wiki/Spike_Chunsoft*/
- cartridge_->curl[92] = "Video System"; /*No find infos*/
- cartridge_->curl[93] = "Ocean"; /*wiki: https://en.wikipedia.org/wiki/Ocean_Software*/
- cartridge_->curl[95] = "Varie"; /*wiki: https://en.wikipedia.org/wiki/Varie*/
- cartridge_->curl[96] = "Yonezawa PR21"; /*wiki: https://en.wikipedia.org/wiki/Yonezawa_PR21*/
- cartridge_->curl[97] = "Kaneko"; /*wiki: https://en.wikipedia.org/wiki/Kaneko*/
- cartridge_->curl[99] = "Pack-In-Video"; /*wiki: https://en.wikipedia.org/wiki/Pack-In-Video*/
- return 0;
- }
- void cartridge_uninit (struct cartridge **cartridge) {
- struct cartridge *cartridge_;
- assert (cartridge != ks_null);
- cartridge_ = *cartridge;
- *cartridge = ks_null;
- if (cartridge_ != ks_null)
- free (cartridge_);
- else ;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement