PDA

View Full Version : Source code of Pokemon White



Kyohack
06-14-2011, 11:14 PM
I have discovered some of Pokemon White's programming source code from a RAM dump. GameFreak apparently coded Pokemon White using the C programming language. They used a DSi with firmware version 1.4.1 as their development console.

Here is a list of the SDKs and libraries that they used:
[SDK+NINTENDO:DWC5.3.30054.20100706.1000_TWLDWC_5_3 _PATCH1_SSLGDB4]
[SDK+NINTENDO:BACKUP]
[SDK+UBIQUITOUS:CPS]
[SDK+NINTENDO:WiFi3.3.30052.201006221129]
[SDK+UBIQUITOUS:SSL]
[SDK+Nintendo:libVCT 1.4.1]

Here is a list of source code files:
gfl_use.c
wb_sound_data.sdat
pm_voice.c
snd_mic.c
bgm_info.c
save_control.c
box_savedata.c
perapvoice.c
myitem_savedata.c
config.c
mystatus.c
playtime.c
mail.c
wifilist.c
mystery_data.c
regulation.c
battle_rec.c
musical_dist_save.c
gds_profile.c
bsubway_savedata.c
symbol_save.c
battle_examination.c
net_err.c
wih_dwc.c
net_save.c
vm.c
ica_anime.c
game_event.c
game_data.c
btl_setup.c
zonedata.c
field_status.c
mcss.c
poke_tool.c
poke_regulation.c
pokeparty.c
poke_personal.c
shinka_check.c
waza_tool.c
printsys.c
gf_font.c
wordset.c
bmp_menuwork.c
bmp_menu.c
bmp_menulist.c
bmp_cursor.c
file_util.c
palanm.c
wipe.c
wipe_sub.c
pmsi_param.c
pms_word.c
infowin.c
actor_tool.c
bmp_oam.c
cursor_move.c
game_comm.c
game_beacon.c
beacon_status.c
app_taskmenu.c
app_keycursor.c
player_volume_fader.c
field_sound_system.c
ringtone_sys.c
tpoke_data.c
tr_tool.c
iss_city_sys.c
iss_city_unit.c
iss_road_sys.c
iss_dungeon_sys.c
iss_sys.c
iss_3ds_sys.c
iss_zone_sys.c
iss_switch_sys.c
iss_switch_set.c
iss_switch.c
bgwinfrm.c
pokegra.c
pms_draw.c
bag_param.c
codein_param.c
screentex.c
comm_player_support.c
blink_palanm.c
time_icon.c
tcbl.c
procsys.c
backup_system.c
flash_access.c
savedata.c
areaman.c
vman.c
gf_overlay.c
ui.c
touchpanel.c
key.c
net_ring_buff.c
net_queue.c
wm_icon.c
net_system.c
net_handle.c
net_command.c
net_state.c
net.c
net_wireless.c
net_lower_data.c
gf_standard.c
bg_sys.c
bmp.c
bmp_win.c
strbuf.c
msgdata.c
systemfont.c
g3d_system.c
g3d_util.c
g3d_camera.c
g3d_light.c
arc_tool.c
arc_util.c
clact.c
textprint.c
fade.c
double3Ddisp.c
billboard.c
billboard_act.c
particle.c
button_man.c

Here is a snippet of actual source code that I found in RAM:
SYSTEM ALLOC tcbl.c procsys.c backup_system.c svsys != NULL svwk_size >= sv->savearea_size next_frame == TRUE flash_access.c lock_id != OS_LOCK_ID_ERROR savedata.c id < svdt->table_max table[i].gmdataID == i SaveDataSize=0x%08xbytes, SaveAreaSize=0x%08xbytes gmdataid < svdt->table_max areaman.c vman.c
gf_overlay.c 0 ui.c touchpanel.c key.c net_ring_buff.c pDataArea 0 net_queue.c 0 (u16)size < (0xffff/2) ret wm_icon.c 0 && "非対応のOBJマッピングモード" net_system.c netID < GFL_NET_MACHINE_MAX 0 !pNetIni->bMPMode net_handle.c 0 !_pBaseWork _pBaseWork _pBaseWork->timingSend[i] netID!=GFL_NET_NETID_SERVER netID < GFL_NET_HANDLE_MAX H
net_command.c _BaseTable.listNum > co _pCommandWork->aNetHugeRecv[index].used==FALSE _pCommandWork->aNetHugeRecv[index].data (pNetIni->maxSendSize - _HUGEDATA_DIFFBYTE)>0 net_state.c NULL==_pNetState ((u32)_pNetState->aMacAddress%2)==0 pNetIni->bNetType == GFL_NET_TYPE_WIFI || pNetIni->bNetType==GFL_NET_TYPE_WIFI_LOBBY || pNetIni->bNetType==GFL_NET_TYPE_WIFI_GTS _pNetState 0 && "_wifiBattleError:未作成\n" net.c pNet->pDevTable pNetInit->maxSendSize <= GFL_NET_IRC_SEND_MAX 0 sendID < 7 pNet->aNetInit.maxConnectNum <= GFL_NET_MACHINE_MAX pNet net_irc_wireless.c 0 pTemp->num<_COLLECTMAC_NUM NetIwSys net_lower_data.c netLdataWork == NULL netLdataWork != NULL netLdataWork->sendData == NULL netLdataWork->postWork[netId] == NULL netLdataWork->postWork[netId] != NULL BufferSize is not enough!![%x][%x]
gf_standard.c bg_sys.c bmp.c bmp_win.c  strbuf.c msgdata.c systemfont.c g3d_system.c g3d_util.c g3d_camera.c g3d_light.c arc_tool.c ArchiveMoveImageTop fileCnt=%d, datID=%d DatCount=%d, DatID=%d

These file names and snippet of source code will give us a HUGE head start in ROM and save editing research.