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