all repos — m12-patcher @ 53d9b4aabf9ee4d4a4f7c1377e022831a19e4ac3

tools/m12.asm (view raw)

  1arch gba.thumb
  2
  3// org $8FFFFFF; db $01 // TURN TRANSLATION DEBUG MODE ON
  4
  5
  6//========================================================================================
  7//                         MOTHER 1+2 HACKS NOT RELATED TO MOTHER 1
  8//========================================================================================
  9
 10// alter select screen graphical text (where you choose between MOTHER 1 and MOTHER 2)
 11org $86DDC74; incbin m12_gfx_whichgame_a.bin
 12org $86E4F94; incbin m12_gfx_whichgame_b.bin
 13
 14// MODIFICA L'ASPETTO DELLA CARTUCCIA DI MOTHER 2
 15// org $86E3B94; incbin m12_gfx_whichgame_m2.bin [ATTUALMENTE NON FUNZIONANTE]
 16
 17
 18//========================================================================================
 19//                  SIMPLE HACKS TO GET MOTHER 2 MENU PATCH TO WORK RIGHT
 20//========================================================================================
 21
 22// try to fix battle menu action highlighting in M2
 23org $80DC27C; lsl r1,r2,#0x4; nop
 24org $80DC2AC; lsl r1,r2,#0x4; nop
 25
 26
 27//========================================================================================
 28//                           MOTHER 1 SAVE FILE SELECT MENU HACKS
 29//========================================================================================
 30
 31// Alter the file select menus
 32org $8FE5000; incbin m1_window_file_menu_1.bin
 33org $8F0D208; dd $8FE5000
 34
 35// move character info positions
 36org $8F0D138; db $03
 37org $8F0D148; db $0E
 38org $8F0D162; db $17
 39org $8FE6000; incbin m1_window_file_menu_2.bin
 40org $8F0D2A4; dd $8FE6000
 41org $8F0D236; db $08
 42
 43// "Copy to where?" window
 44org $8FE7000; incbin m1_window_file_menu_3.bin
 45org $8F0D37C; dd $8FE7000
 46// move "copy to" cursor when selecting a slot
 47org $8F2A0B6; db $00
 48org $8F2A0BA; db $00
 49org $8F2A0BE; db $00
 50
 51// "Delete this file?" window
 52org $8FE8000; incbin m1_window_file_menu_4.bin
 53org $8F0D3DC; dd $8FE8000
 54
 55// FINESTRA "Vuoi sovrascriverlo?"
 56org $8FE7EE0; incbin m1_window_file_menu_4.bin
 57org $8F0D380; dd $8FE7EE0
 58
 59// lower box erasing stuff
 60org $8F2713D; db $01
 61org $8F27141; db $1C
 62org $8F27146; db $1C
 63org $8F2714B; db $1C
 64org $8F27150; db $1C
 65org $8F27155; db $1C
 66
 67
 68//========================================================================================
 69//                           MOTHER 1 NAMING SCREEN STUFF
 70//========================================================================================
 71
 72// alter naming windows
 73org $8F0DE4C; dd $8FE7A00
 74org $8FE7A00; incbin m1_window_naming.bin
 75org $8F0DDA8; db $02  // move desc. text up one row
 76org $8F0DDB4; db $05  // move name to be below the text
 77org $8F0DF7E; db $05
 78org $8F0DE78; db $05
 79org $8F0DF52; db $05
 80org $8F0DFA0; db $05
 81
 82// repoint character text and resize it
 83org $8F0DBBC; dd $8FE7C00
 84org $8F0DBC4; dd $8FE7C30
 85org $8F0DBD0; dd $8FE7C60
 86org $8F0DBDC; dd $8FE7C90
 87org $8F0DBE8; dd $8FE7CC0
 88
 89// change the question marks when typing a name to dots
 90org $8F0DF78; db $FC
 91org $8F0DF6A; db $FC
 92org $8F0DD72; db $FC
 93org $8F0E1FE; db $FC
 94
 95// repoint list of unallowed names
 96org $8F0E2A0; dd $8FE80C0
 97
 98// repoint "name not allowed" window
 99org $8F0E2A4; dd $8FE7200
100org $8FE7200; incbin m1_window_name_not_allowed.bin
101
102// move the naming screen sprites up a few pixels
103org $8F0DDE0; db $10
104
105// repoint "Fav. Food" text on confirmation screen to allow longer text
106org $8F0DBF0; dd $8FE7900
107
108// clear out the "Is this OK?" confirmation window
109org $8F2742C; db $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
110org $8F2743F; db $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
111
112
113//========================================================================================
114//                          MOTHER 1 PLAYER NAMING SCREEN STUFF
115//========================================================================================
116
117org $8F0BC62; db $FC
118org $8F0BDD8; db $FC
119org $8F0BDE6; db $FC
120org $8F0BF88; db $FC
121
122
123//========================================================================================
124//                            MOTHER 1 BATTLE-RELATED HACKS
125//========================================================================================
126
127// alter character stats window in battle
128org $8F0AEFC; dd $8FE7400
129org $8FE7400; incbin m1_window_char_stats.bin
130
131// alter main battle text box design
132org $8F275E6; db $01
133org $8F275EC; db $1A
134org $8F275F5; db $1A
135org $8F275FE; db $1A
136org $8F27607; db $1A
137org $8F27610; db $1A
138org $8F2761A; db $1A
139org $8F27616; db $02
140
141// clear out "can't use that in battle" text
142org $8F2780D; db $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
143
144// clear out "can't equip in battle" text
145org $8F2783A; db $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
146
147// repoint and set up "??? can't use this" battle text
148org $8F29F50; dd $8FE78A0
149org $8FE78A0; incbin m1_window_cant_use_item.bin
150
151// clear out text speed box
152org $8F2789C; db $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
153org $8F278B3; db $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
154
155org $8F2761F; db $01   // make the game delete the battle box properly
156org $8F27623; db $1C
157org $8F27628; db $1C
158org $8F2762D; db $1C
159org $8F27632; db $1C
160org $8F27637; db $1C
161
162org $8F27770; db $0B   // move enemy name box left a little bit
163org $8F27776; db $11   // expand enemy name box in battle
164org $8F2777F; db $11
165org $8F27788; db $11
166org $8F27791; db $11
167org $8F2779A; db $11
168org $8F277A3; db $11
169org $8F10F32; db $0C   // move cursor
170
171// get pre-parsing stuff to work so we can do auto line wraps
172org $8F0F226; bl copy_battle_line_to_ram
173
174// add a space between the enemy name and the suffix letters if there are multiple enemies
175org $8F0F2DA; bl add_space_to_enemy_name
176
177// only undo auto-indenting if it's battle text
178org $8F0C088; bl possibly_ignore_auto_indents
179
180
181//========================================================================================
182//                              MOTHER 1 OVERWORLD HACKS
183//========================================================================================
184
185// Alter the Command menu
186org $8F0B290; dd $8FE4000
187org $8FE4000; incbin m1_window_command_menu.bin
188
189// INVERTE LA POSIZIONE DEI CONTANTI E DEL SIMBOLO DEL DOLLARO NELLA FINESTRA DEL PORTAFOGLI
190org $8F0B03C; dd $8FE4400
191org $8FE4400; incbin m1_window_money.bin
192
193// ALLARGA LA FINESTRA DI SCELTA DEL NOME DEL GIOCATORE DI 1 TILE A DESTRA
194org $8F0BCD8; dd $8FE4430
195org $8FE4430; incbin m1_window_naming_player.bin
196
197// Alter the Status menu
198org $8F0B188; dd $8FE4800
199org $8FE4800; incbin m1_window_status_menu.bin
200org $8F0C6B4; db $04   // fix status menu number alignment
201
202// alter main dialogue box
203org $8F0CAE4; bl choose_text_window_type
204org $8F0AE48; dd wide_text_box
205org $8F7E100
206wide_text_box:
207   incbin m1_window_wide_text_box.bin
208org $8F0CB1E; bl save_line_number_a
209// keep game from updating character status on top of dialog boxes
210org $8F0B01C; nop; nop;
211
212// let capsule items be "swallowed" instead of "drank"
213org $8F08576; bl swallow_item
214org $8F08586; bl swallow_item
215org $8F08596; bl swallow_item
216org $8F085A6; bl swallow_item
217org $8F085B6; bl swallow_item
218
219// repoint yes/no main dialog options, make the game know when to choose which one
220org $8FE7100; incbin m1_window_yes_no.bin
221org $8FE7140; incbin m1_window_yes_no_small.bin
222org $8F04FCE; bl choose_yes_no_size
223
224// alter the item action menus
225org $8F0B7C4; dd $8FE4B00
226org $8FE4B00; incbin m1_window_item_action_menu.bin
227org $8F29FB6; db $16
228org $8F29FBA; db $16
229org $8F29FBE; db $16
230org $8F29FC2; db $16
231org $8F29FC6; db $16
232org $8F29FCE; db $16
233org $8F29FD2; db $16
234org $8F29FD6; db $16
235
236// expand store menu width
237org $8F0BAC0; dd $8FE7800
238org $8FE7800; incbin m1_window_shop_menu.bin
239org $8F0BAD8; db $0E
240
241// repoint and expand the "Who?" window
242org $8F0B9F4; dd $8FE7560
243org $8FE7560; incbin m1_window_who.bin
244// delete expanded "Who?" window properly
245org $8F0B9B8; db $08
246org $8F0B9CC; db $08
247org $8F0B9E0; db $08
248
249// SPOSTA IL SIMBOLO DEL DOLLARO NEI NEGOZI DOPO IL PREZZO [MERITO DI LORENZOOONE]
250org $8F0BAD8;
251bl change_dollar_sign_pos_shop;
252nop;
253nop;
254nop;
255nop
256
257
258//========================================================================================
259//                  FIXES TO BUGS IN THE ORIGINAL MOTHER 1 PROGRAMMING
260//========================================================================================
261
262org $8F66332; db $0A   // makes player attack sounds use proper sound
263org $8F66308; db $01   // makes enemy attack sounds use proper sound
264
265org $8F29E86; db $AC   // undo the programmers' nonsensical comma replacement stuff
266org $8F29E84; db $A3   // undo programmers' weirdness to help get smart quotes working
267
268
269//========================================================================================
270//                                NEW MOTHER 1 GOODIES
271//========================================================================================
272
273// create item info for Easy Ring and place it in a box in Ninten's room
274org $8F1B3C8; db $1B,$80,$3F,$9C,$02,$00,$02,$00
275org $8F027B4; dd newobjecttable
276org $8FE8200
277newobjecttable:
278  incbin m1_data_object_table_1.bin  // repointing a map object table to insert Easy Ring box
279
280org $8F1258E; bl increaseexp
281org $8F10350; bl increasemoney
282org $8F09698; bl lowerencounterrate
283//org $8F0E5E0; bl increase_offense  // turns the Easy Ring into the prank Hard Ring
284
285
286//========================================================================================
287//                               MOTHER 1 ENDING HACKS
288//========================================================================================
289
290// the ending runs via one long continuous script, need to repoint it so we can fix stuff
291org $8FEA400; incbin m1_data_ending_script.bin
292org $8F0A500; dd $8FEA400
293org $8FEBDB8; db $01,$02,$03,$04,$05,$00,$00,$00,$00,$00,$00,$00  // DIRECTOR
294org $8FEBDE4; db $06,$07,$08,$09,$0A,$0B,$0C,$0D,$00,$00,$00,$00  // GAME DESIGNERS
295org $8FEBE05; db $0E,$0F,$10,$11,$12,$13,$14,$15,$16,$00,$00,$00  // MUSIC PRODUCERS
296org $8FEBE26; db $0E,$0F,$17,$18,$19,$1A,$1B,$1C,$00,$00,$00,$00  // MUSICAL EFFECTS
297org $8FEBE47; db $1D,$1E,$1F,$03,$0C,$20,$21,$22,$23,$15,$16,$00  // CHARACTER DESIGNERS
298org $8FEBE68; db $24,$25,$26,$27,$28,$09,$29,$2A,$00,$00,$00,$00  // FIGURE MODELING
299org $8FEBE84; db $11,$2B,$2C,$2D,$2E,$2F,$30,$00,$00,$00,$00,$00  // PROGRAMMERS
300org $8FEBEAA; db $31,$32,$1E,$33,$34,$35,$36,$37,$38,$1C,$00,$00  // SCENARIO ASSISTANTS
301org $8FEBED5; db $39,$3A,$3B,$3C,$3D,$04,$3E,$00,$00,$00,$00,$00  // COORDINATORS
302org $8FEBF0C; db $11,$12,$13,$14,$3F,$00,$00,$00,$00,$00,$00,$00  // PRODUCER
303org $8FEBF28; db $40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$00,$00  // EXECUTIVE PRODUCER
304//org $8FEBDA9; db $1E // change music played here
305
306
307//========================================================================================
308//                             UNCENSORING MOTHER 1 STUFF
309//========================================================================================
310
311incsrc m1_uncensor.asm  // comment this out if you want to put the gfx censoring back in
312
313
314//========================================================================================
315//                               MOTHER 1 GRAPHIC HACKS
316//========================================================================================
317
318// insert new main font
319org $8F2A5B0; incbin m1_gfx_font.bin
320
321// alter the presented by/produced by screens
322org $8F633BC; incbin m1_gfx_produced_by_a.bin
323org $8F633EC; incbin m1_gfx_produced_by_b.bin
324org $8F0D5D0; bl producescreen1; b $8F0D5E8
325org $8F634EC; incbin m1_gfx_presents.bin
326org $8F0D63C; bl producescreen2; b $8F0D664
327org $8F0D66E; nop
328org $8F0D676; nop
329
330// make the "CD" machine say "ATM" instead
331org $8F328F0; incbin m1_gfx_atm.bin
332
333// change some of the graphical text used in the end credits
334org $8F5FF2C; incbin m1_gfx_credits.bin
335
336// INIETTA LA MAPPA CON SCRITTO "CASA" AL POSTO DI "MY HOME"
337org $8F5CB1C; incbin m1_gfx_map.bin
338
339
340//========================================================================================
341//                              NEW MOTHER 1 CODE HACKS
342//========================================================================================
343
344org $8FEC400; incsrc m1_new_code.asm