From a0793c72c0d4f30a291934cde77c2cefaa01712b Mon Sep 17 00:00:00 2001 From: The Gears of Progress Date: Sat, 20 Sep 2025 17:17:20 -0400 Subject: [PATCH] Fixing issues before implementing the CPCS --- Poke_Transporter_GB_mb-1.png | Bin 0 -> 3167 bytes graphics/boxBG.png | Bin 1210 -> 1215 bytes graphics/unused graphics/boxBG.png | Bin 0 -> 1210 bytes graphics/unused graphics/latin_short.png | Bin 1346 -> 1360 bytes include/box_menu.h | 2 +- include/debug_mode.h | 6 +-- source/box_menu.cpp | 6 +-- source/gameboy_colour.cpp | 53 ++++++++++++++--------- source/latin_short.s | 2 +- source/sprite_data.cpp | 9 ++-- text_helper/main.py | 5 ++- tools/data-generator/src/common.cpp | 2 + 12 files changed, 52 insertions(+), 33 deletions(-) create mode 100644 Poke_Transporter_GB_mb-1.png create mode 100644 graphics/unused graphics/boxBG.png diff --git a/Poke_Transporter_GB_mb-1.png b/Poke_Transporter_GB_mb-1.png new file mode 100644 index 0000000000000000000000000000000000000000..f61e9167e24d1a541cbb0240616c8a9c3bc3edce GIT binary patch literal 3167 zcmV-l450IgP) zEqLQP7KYV*3OX!d2@EXkWho52!&0^b16#JkX5kE*Wi1T6mnH08wt+3{uq`x9SjrN( zK&h(Ak}TQ!_xC;pjcXq(?&ss9BkB0;>iej=Cp}?u_x8)xE^0%7FU|&|5h3LIw;SOP zkI$EIa@CtBQIGjY>;?ql_V%B#n*c)47eRxb z06~MIfS^H9K+vEl&Iuup&#S_68lbnpLxZA#pg~bU(4Z*JV>ci)bmB@yMzI?LyZ{dk zibC$8f4x-8>t`+4^4Tw`5e0mpc9v?zxa1byPSt>o%FkB4zh0b3yGclICs^l&^*!4$9pg8qOjKmQT{rXyLxLFkgr~F`vUP!hhXzFfL4%@z zpg~bU(4Z(FXiyXoG$;xP8WaTt4T=JS21S99!V_#-oZGQIPiBD%c<6ULO<2SwYYl=<9a}Yd!IC+BWnGA-6n1<#CrkufI zbgTRz1f4Fe)ok0HqFSMc7(NgJC!x(x2SKNZzc8bb$zW)uY<~!6H%tyT$IzQyr)B|L zXf`8uE1dNj-O@PZ4iB9W4xM84>OCH4mnSwvqgpmRDgCQamLoeSon3=jn%R{>C#GV} z(=fTQRVjI;p#Q%3&VStOvQf!qM_zybZ|qi>;#|tS)G^`h_YC>J`a%Lwd3VAB=CpTO|m;2g~*G8p5`d=i4&YvFrG$tSSjO{hq z9gc*&Yg*nZOkWBG5MY9QfUcoix?d9veMcjJdvTnfCySgAJL0?YtE&yf1<8$m5a0KfP=924hbwS=c zh1avG6N_o`xOs}*gm(h3m-g+XyW4koK~6Dr*=i<RTTj=4u9cE29s$1i;B$lu|tJ=%>$@C=a zb~wKv$~?5-O@R{<85(q6&a0g@AGf!uhi3Zb-LSBwot^%WR1_QCReO3^xePhl+361^ z|35Y?$Lq|z97l^LIgzzh80|Igk_%ee7X)2sbk7=9y>0iU11GXJN!|tMLSV&8AoTx8 z6EV@{*$cw&=a|y4w*#=(m2k`Ai5oR2A`D{zBuTS`>o|P^^PO1A22&+V1a)TXI3( z{KF95=~JNfCu`<705XpP#~pX&SQHL9{tYLlN#&YmC+!(YKk zH#+{LJTz;q`8cS_rLz;XAS3fb4EGWIda|PIg2V7vaMBvfNlBT)M$1|4Q+*>1<236| zp;VxH$u1xMpg)?U=nk4tL_6DpB&cSJFy5rk-bmG4F9_BqLQKql3Ddc~=)w>-Axmde!F^ z9RqKm&{79kq$w@*e+l0ZMnL4Zdo5}H16qpen?%8Lb9dq zr-jb0Rj;FAO<_lb=e~5cqRGN7%5u5Rx7@;Vxt`Bw!A>WQG=iO-KdDrXdQJ29m~FG$ zd+2&zqK=PA)z`CWUZwYby;Q-9D5&CxbQTdZgeQaW#tG`ATQobf`Ow$1X-GfkgvsTE z5c1+bSkgqpniVAx7luv8VYje6)B z-gb`^Odl-)_6`8yMa4X-mEI9k)cO~xw43&ABxpWi%=h6k8qw$p^hL$y`$u%!CNJW^ zyS{r0{}Op#qm6Gqj^&>9H&T~`jB?dC`<)-&lTH=VAo%tAgt(4VH}c!1_U*n;2l$s`(_g48G&Af1xM!2{2GjAF?*Pyq;bhQq zrI|#~4y$-s6%eyUPz?LXZ&&@!qmrFUsVdVrFaKdq8` zt|5m?XTo;g2dn(CE13PjzFEL>MmB;M{h*4 zztnzUXpA9jsXzClS6r{R(+bssoqh?L$TVlGKYa`nSIrcY3PxdCqK9uMd*fio5zSmf zj(Yq+KMLDbnsX9+_>N&b5q^5K$^A1OkK4r<0vUT~K~GG$LfmX}tQ58byH!+nQt--# zBs49YfMBIc8>ug~@TUavPf zPKjQxH%{yr1`piQrc~5Sai!^UvK(|RQ$Lqrr4R~tM_6j*oSX!`Sj?Bpb%3=@K3FW~ zt&c53$~+z8=@Me-uXjIw-haz6-e7#a`_ba4^3+UR#2$3gDXH}(vJv!hb?>97MdB2x zW{RgiVm5*4v0-m6H;g6X%sKn$CXuXs;?K6&!2`w9quW zIQ1dJoCHnjL*=CYsF~94&C1dN@XQ2VK;@)91QIPUyez^J;5wNJIy*H}=JOeg{(I$m z&9S{KDkqKEb|7PRhvUuR!K8hgMZlBI=Sf(k*p6s_IJZ zRui&I4}4IFpf!?ZCBO8V*4s&Kfgn&(Ldelrt*ef7)prX!ATobAqln`H&55IY22om(C5lYz=X402CnwoZSJeS=kwWcJVqYcE9a9tQsq#;rMH!nfEDM2 zkjY)_Ry0xFlb34y`E&9O1+h81`kqI~k;P-A5yTt5`9BEB3j@7BzHR^j002ovPDHLk FV1jp@74`rC literal 0 HcmV?d00001 diff --git a/graphics/boxBG.png b/graphics/boxBG.png index 732f9992358b4923c191327cc9c484f94147c53a..dfceccdc914353858d53a9f694d01dc7a37e1e34 100644 GIT binary patch delta 1085 zcmV-D1j75e3BL)DUk?BQbW%=J06^y0W&i*LJ&|D=0sE1BAb&gmN#gfxCqCu5sVYCI z>T-(qv!9D1dTwscsjA z4Zane8tL+IqRS;T08Bx9j094fi4>H$@13^v`%Yn| zeHp=iD;@lEUVfK^qwZMQ!asnmwD84lDH3or(-Q_^aI%GOmfZ6MY^$YJ(;f@R{#F|` z@^He36C$uzws^GV_*xrF&Pv!zCC+*)0gT(F;eXsuu!S)9G8xvH9ASL&TQp3U_F<8IW^R}medDvg(av6bjWl32C9(N>3c-W4tgi&<%(ksIYh8&yKl!1G1 zp}??fObNJGTwn5JxDS#;hea7!&lYYM3x61mf%QeD7;M(jU{7EckXAoIHBVI6?m)ue z%v>shrP@?_(+juM(ZlW$F?MZ9$q`<=^-1?T3Lh_DvMe0g3P^N95jeIL05C5DN4Fqo zk5mMX?zzCOune5obD>j6VWm``yrGc(nWV6Nt4+zc3v*2gFWo+%n;klM`ChRMoPTkT z>UEh8UQ9F`WiF`TtebLK0M2o}F7uWM&dIdj<&Fx@eEczVnX{F*sV8=LoKd1Z4SrCm z$c63M!o9bc4d3Pd{~0Yf3I0k4zdi}3{-RYbO#aofT$udJbQOMXFm*hC`0@*FRJg(w zu5g7bT;U3D0cU00000NkvXXu0mjf D%EuX` delta 1080 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 Z_y;VmY28>=aQpxO002ovPDHLkV1lO$W={YB delta 1249 zcmV<71Rnd)3c?DIU;)jMVHJM?)A?3SZO{06($o1pkqCksfDK677jN74A35*S_K|%k z`~AEE$NJg#e`#NZTnv z5|!Yc1b{CI+B3eb#D!mhQ$q7251E8QX`Tp*oq-LR%9Jt>|OWP@IerFt-B_nxRV&J&jcX zDBJpGA6;DC#_?tcsA7L%At=^JiJ)2z(HQ|B5}*YBCe6M-n50EdNWl5``v&>Ap6+hDfCAIuR?#jrAfiq@?j-VvQ|}L z-XlN{xLclJ<)Z900!y~}6M;!VT4pC05_q<5G4?eANL9E*pttlG12HR6Hl~Td#s`g{ zrz4U$unvz1fwmX20i9>SNBLeN;5BaXr8s(UR|ckcCn4OdB({|09OdYn4*<< zivWfMI_}xWRe3}!s)K$_*MVn1R>mljJWjHaH>+BWwI>2JnRqBK>gMyK^a~-C8VRD5 z(~yEaXCGS(>n>9J_(ZVqDs3+BN>SV6rH0HXf9NBU=n~6V2uJ7{w&@tsr7qL2#y*XT6*)GpqsD6y#&ebDZHNO zuP23ALHkjAN2|QUBp1N&e~}=)2Wk@R5m=sK1kv%>Xol+`5_lE50xE&6ZZeZj1QrK$ zA%{;0KGO;@FSYP{klSBCTWk1+tQpH`EO}MrP-NA>nFvTD-LF-+L@;T!P}u+V8%`3d#600000 LNkvXXu0mjf;3YfJ diff --git a/include/box_menu.h b/include/box_menu.h index 9c51767..08ff89c 100644 --- a/include/box_menu.h +++ b/include/box_menu.h @@ -13,7 +13,7 @@ #define CONFIRM_BUTTON 2 // Box is 144 x 104, top left is 88 32, sprite is 16x16, sprites are not centered -#define BOXMENU_TOP 32 +#define BOXMENU_TOP (32 - 12) #define BOXMENU_LEFT 88 #define BOXMENU_VSPACE -4 #define BOXMENU_HSPACE -10 diff --git a/include/debug_mode.h b/include/debug_mode.h index 0b6e1d5..f5137b0 100644 --- a/include/debug_mode.h +++ b/include/debug_mode.h @@ -8,13 +8,13 @@ #define PRINT_LINK_DATA (false && DEBUG_MODE) // This is currently broken... not sure why #define INSTANT_TEXT_SPEED (false && DEBUG_MODE) -#define IGNORE_GAME_PAK (true && DEBUG_MODE) +#define IGNORE_GAME_PAK (false && DEBUG_MODE) #define IGNORE_GAME_PAK_SPRITES (false && DEBUG_MODE) -#define IGNORE_LINK_CABLE (false && DEBUG_MODE) +#define IGNORE_LINK_CABLE (true && DEBUG_MODE) #define IGNORE_MG_E4_FLAGS (true && DEBUG_MODE) #define IGNORE_UNRECEIVED_PKMN (true && DEBUG_MODE) #define FORCE_TUTORIAL (false && DEBUG_MODE) -#define DONT_REMOVE_PKMN (false && DEBUG_MODE) +#define DONT_REMOVE_PKMN (true && DEBUG_MODE) #define DONT_HIDE_INVALID_PKMN (false && DEBUG_MODE) #define IGNORE_DEX_COMPLETION (false && DEBUG_MODE) #define FORCE_ALL_CAUGHT (false && DEBUG_MODE) diff --git a/source/box_menu.cpp b/source/box_menu.cpp index 4a91fd9..cc760e9 100644 --- a/source/box_menu.cpp +++ b/source/box_menu.cpp @@ -25,8 +25,8 @@ int Box_Menu::box_main(Pokemon_Party party_data) load_temp_box_sprites(&party_data); Button cancel_button(button_cancel_left, button_cancel_right, 64); Button confirm_button(button_confirm_left, button_confirm_right, 64); - cancel_button.set_location(88, 144); - confirm_button.set_location(160, 144); + cancel_button.set_location(88, 124); + confirm_button.set_location(160, 124); cancel_button.show(); confirm_button.show(); curr_button = 0; @@ -139,7 +139,7 @@ int Box_Menu::box_main(Pokemon_Party party_data) if (curr_pkmn.is_shiny) { tte_set_pos(64, 16); - val[0] = 0xF7; + val[0] = 0xF9; val[1] = 0xFF; ptgb_write(val, true); } diff --git a/source/gameboy_colour.cpp b/source/gameboy_colour.cpp index a29270b..3ae8229 100644 --- a/source/gameboy_colour.cpp +++ b/source/gameboy_colour.cpp @@ -91,24 +91,23 @@ byte data_packet[PACKET_SIZE]; static_assert(sizeof(struct GB_ROM) == 132); static_assert(sizeof(struct ROM_DATA) == 160); -void print(const char* format, ...) +void print(const char *format, ...) { va_list args; va_start(args, format); // 10 elements of 64 bytes, zero-initialized. char spi_text_out_array[10][SPI_TEXT_OUT_ARRAY_ELEMENT_SIZE] = { - {0}, - {0}, - {0}, - {0}, - {0}, - {0}, - {0}, - {0}, - {0}, - {0} - }; + {0}, + {0}, + {0}, + {0}, + {0}, + {0}, + {0}, + {0}, + {0}, + {0}}; for (int i = 10; i > 0; i--) { @@ -161,13 +160,13 @@ void setup(const u16 *debug_charset) create_textbox(5, 1, 128, 60, true); - { - u8 general_text_table_buffer[2048]; - text_data_table general_text(general_text_table_buffer); + { + u8 general_text_table_buffer[2048]; + text_data_table general_text(general_text_table_buffer); - general_text.decompress(get_compressed_general_table()); - ptgb_write(general_text.get_text_entry(GENERAL_connecting), true); - } + general_text.decompress(get_compressed_general_table()); + ptgb_write(general_text.get_text_entry(GENERAL_connecting), true); + } } byte handleIncomingByte(byte in, byte *box_data_storage, byte *curr_payload, GB_ROM *curr_gb_rom, Simplified_Pokemon *curr_simple_array, const u16 *debug_charset, bool cancel_connection) @@ -220,7 +219,14 @@ byte handleIncomingByte(byte in, byte *box_data_storage, byte *curr_payload, GB_ { tte_erase_rect(0, 0, H_MAX, V_MAX); tte_set_pos(40, 24); - ptgb_write_debug(debug_charset, curr_gb_rom->version != YELLOW_ID ? "\n\n\nLink was successful!\n\n Waiting for trade" : "\n\n\nLink was successful!\n\n Waiting for battle", true); + { + u8 general_text_table_buffer[2048]; + text_data_table general_text(general_text_table_buffer); + + general_text.decompress(get_compressed_general_table()); + ptgb_write(general_text.get_text_entry(curr_gb_rom->version != YELLOW_ID ? GENERAL_link_success_yellow : GENERAL_link_success), true); + } + link_animation_state(STATE_NO_ANIM); state = pretrade; data_counter = 0; @@ -265,7 +271,14 @@ byte handleIncomingByte(byte in, byte *box_data_storage, byte *curr_payload, GB_ { tte_erase_rect(0, 0, H_MAX, V_MAX); tte_set_pos(40, 24); - ptgb_write_debug(debug_charset, "\n\n\nTransferring data...\n please wait!", true); + { + u8 general_text_table_buffer[2048]; + text_data_table general_text(general_text_table_buffer); + + general_text.decompress(get_compressed_general_table()); + ptgb_write(general_text.get_text_entry(GENERAL_transferring), true); + } + link_animation_state(STATE_TRANSFER); mosi_delay = 1; state = party_preamble; diff --git a/source/latin_short.s b/source/latin_short.s index 5d8c6e3..0fa33bf 100644 --- a/source/latin_short.s +++ b/source/latin_short.s @@ -155,7 +155,7 @@ latin_shortGlyphs: .word 0x0E000011,0x11111111,0x0000000E,0x00000000,0x11000011,0x11111111,0x0000000E,0x00000000 .word 0x00001100,0x1911111E,0x00000016,0x00000000,0x00001100,0x1111110E,0x0000000E,0x00000000 .word 0x00001100,0x09090909,0x00000016,0x00000000,0x3F3F3E3C,0x0603392F,0x0000003C,0x00000000 - .word 0x07070301,0x03060407,0x00000001,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000 + .word 0x07070301,0x03060407,0x00000001,0x00000000,0x10020702,0x0E041038,0x00000004,0x00000000 .word 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000 .word 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000 .word 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000 diff --git a/source/sprite_data.cpp b/source/sprite_data.cpp index c3e82e9..49ac7ca 100644 --- a/source/sprite_data.cpp +++ b/source/sprite_data.cpp @@ -513,7 +513,7 @@ void load_temp_box_sprites(Pokemon_Party *party_data) load_sprite_compressed(button_confirm_right, button_edgeTiles, curr_tile_id, BTN_PAL, ATTR0_TALL, ATTR1_SIZE_8x32, 1); } -void load_type_sprites(const u8* pkmn_type_table, int pkmn_index, int dex_offset, bool is_caught) +void load_type_sprites(const u8 *pkmn_type_table, int pkmn_index, int dex_offset, bool is_caught) { if (is_caught) { @@ -907,13 +907,16 @@ void update_menu_sprite(Pokemon_Party *party_data, int index, int frame) int dex_num = curr_pkmn.dex_number; if (dex_num == 201) { - dex_num = POKEMON_ARRAY_SIZE + curr_pkmn.unown_letter; + if (curr_pkmn.unown_letter != 0) + { + dex_num = 0x19C + curr_pkmn.unown_letter; + } } else if (curr_pkmn.is_missingno) { dex_num = 0; } - + u32 sprite_location = (*(u32 *)(curr_rom.loc_gMonIconTable + (dex_num * 4))) + (frame == 0 ? 0 : 512); tonccpy(&tile_mem[SPRITE_CHAR_BLOCK][curr_tile_id], (const unsigned int *)sprite_location, 512); } \ No newline at end of file diff --git a/text_helper/main.py b/text_helper/main.py index 71cd619..9f86b9d 100755 --- a/text_helper/main.py +++ b/text_helper/main.py @@ -46,10 +46,11 @@ if os.path.exists(old_file_path): if new_file.equals(old_file): if os.path.exists(json_file_path): print("Downloaded file is identical. Skipping parse\n") - os.rename(new_file_path, old_file_path) + os.remove(new_file_path) exit() print("json file missing - forcing rebuild.") - os.remove(new_file_path) + os.remove(old_file_path) + os.rename(new_file_path, old_file_path) else: print("xlsx file missing - forcing rebuild.") os.rename(new_file_path, old_file_path) diff --git a/tools/data-generator/src/common.cpp b/tools/data-generator/src/common.cpp index 8d796f8..72ada3e 100644 --- a/tools/data-generator/src/common.cpp +++ b/tools/data-generator/src/common.cpp @@ -4,6 +4,8 @@ #include #include +// Data pulled from https://docs.google.com/spreadsheets/d/14LLs5lLqWasFcssBmJdGXjjYxARAJBa_QUOUhXZt4v8/edit + void writeTable(const char *input_path, const char *output_path, const char *filename, const char *buffer, size_t buffer_size) { char full_output_path[4096];