From 9f97a042b9ff06e20fa56ed5fd5fe4ecbfc9c95a Mon Sep 17 00:00:00 2001 From: nmlgc Date: Thu, 23 Mar 2017 22:52:12 +0100 Subject: [PATCH] instant_ending: Turn each death into a used continue instead. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Much more efficient and consistent than trying to automatically select "Continue" on every Game Over menu, and then finding yet another hack for TH10, TH11, and TH12 to either allow "real" continues on Stage 1 (they're equivalent to game restarts) or start in Stage 2. It even bypasses score registration! With these hacks, setting the start lives to zero technically isn't even necessary – in fact, this even requires more complicated binhacks for TH06 and TH07, which have two separate functions for "death with ≥1 lives" and "death/continue with 0 lives". However: • I already wrote those first hacks • They do pave the way for the eventual cheat patch (#8) • Displaying zero lives does make the automatic continue functionality appear more thorough to testers. --- instant_ending/files.js | 30 +++++++++++++++--------------- instant_ending/global.js | 3 +++ instant_ending/th06.v1.00.js | 4 ++++ instant_ending/th06.v1.02h.js | 4 ++++ instant_ending/th07.js | 7 +++++++ instant_ending/th07.v1.00.js | 6 ++++++ instant_ending/th07.v1.00b.js | 6 ++++++ instant_ending/th10.v1.00a.js | 4 ++++ instant_ending/th11.v1.00a.js | 4 ++++ instant_ending/th12.v1.00a.js | 4 ++++ instant_ending/th12.v1.00b.js | 4 ++++ instant_ending/th13.v1.00a.js | 4 ++++ instant_ending/th13.v1.00b.js | 4 ++++ instant_ending/th13.v1.00c.js | 4 ++++ instant_ending/th14.v1.00a.js | 4 ++++ instant_ending/th14.v1.00b.js | 4 ++++ 16 files changed, 81 insertions(+), 15 deletions(-) diff --git a/instant_ending/files.js b/instant_ending/files.js index 0b961c7a..5f5314a1 100644 --- a/instant_ending/files.js +++ b/instant_ending/files.js @@ -1,25 +1,25 @@ { - "global.js": 3405867638, + "global.js": 2851179968, "patch.js": 4162927855, "th06.js": 3386456457, - "th06.v1.00.js": 1077685884, - "th06.v1.02h.js": 151479896, + "th06.v1.00.js": 4113798322, + "th06.v1.02h.js": 187691200, "th06/ecldata1.ecl": 763279557, "th06/ecldata2.ecl": 763279557, "th06/ecldata3.ecl": 763279557, "th06/ecldata4.ecl": 763279557, "th06/ecldata5.ecl": 763279557, "th06/ecldata6.ecl": 763279557, - "th07.js": 2994128587, - "th07.v1.00.js": 35490338, - "th07.v1.00b.js": 3815250801, + "th07.js": 2379439137, + "th07.v1.00.js": 2847899184, + "th07.v1.00b.js": 3947242927, "th09.v1.00a.js": 552627174, "th09.v1.50a.js": 1531916002, - "th10.v1.00a.js": 215852422, + "th10.v1.00a.js": 2572868146, "th10/st01_00.msg": 3231840920, "th10/st01_01.msg": 3231840920, "th10/stage01.ecl": 2043589963, - "th11.v1.00a.js": 3765940916, + "th11.v1.00a.js": 3928446296, "th11/st01_00a.msg": 3471427747, "th11/st01_00b.msg": 3471427747, "th11/st01_00c.msg": 3471427747, @@ -27,8 +27,8 @@ "th11/st01_01b.msg": 3471427747, "th11/st01_01c.msg": 3471427747, "th11/stage01.ecl": 2043589963, - "th12.v1.00a.js": 3199741384, - "th12.v1.00b.js": 3739523203, + "th12.v1.00a.js": 2053011456, + "th12.v1.00b.js": 2989143476, "th128.v1.00a.js": 3356264127, "th128/st_a1.msg": 4009716713, "th128/st_a1_1.ecl": 3247164060, @@ -48,16 +48,16 @@ "th128/st_c1_2.msg": 1594179563, "th128/st_c2_2.ecl": 3247164060, "th128/st_c2_2.msg": 1594179563, - "th13.v1.00a.js": 1074405477, - "th13.v1.00b.js": 1624223197, - "th13.v1.00c.js": 1837056064, + "th13.v1.00a.js": 448596096, + "th13.v1.00b.js": 1912215997, + "th13.v1.00c.js": 3794383421, "th13/st01.ecl": 1934639967, "th13/st01a.msg": 1715219887, "th13/st01b.msg": 1715219887, "th13/st01c.msg": 1715219887, "th13/st01d.msg": 1715219887, - "th14.v1.00a.js": 902932685, - "th14.v1.00b.js": 1076468721, + "th14.v1.00a.js": 250859443, + "th14.v1.00b.js": 991587300, "th14/st01.ecl": 235943435, "th14/st01a.msg": 1715219887, "th14/st01b.msg": 1715219887, diff --git a/instant_ending/global.js b/instant_ending/global.js index 829c3421..bea3304e 100644 --- a/instant_ending/global.js +++ b/instant_ending/global.js @@ -7,6 +7,9 @@ "zero_lives": { "code": "00000000", "title": "Set lives to zero" + }, + "deaths_to_continues": { + "title": "Turn each death into a used continue instead" } } } diff --git a/instant_ending/th06.v1.00.js b/instant_ending/th06.v1.00.js index 1b67e1b0..346f32c3 100644 --- a/instant_ending/th06.v1.00.js +++ b/instant_ending/th06.v1.00.js @@ -2,6 +2,10 @@ "binhacks": { "zero_lives": { "addr": "Rx3695e" + }, + "deaths_to_continues": { + "addr": "Rx28aa2", + "code": "0fb605 98d46900 40 a2 98d46900 a3 80bc6900 a3 84bc6900 9090" } } } diff --git a/instant_ending/th06.v1.02h.js b/instant_ending/th06.v1.02h.js index df0e8b1c..61045523 100644 --- a/instant_ending/th06.v1.02h.js +++ b/instant_ending/th06.v1.02h.js @@ -2,6 +2,10 @@ "binhacks": { "zero_lives": { "addr": "Rx36de7" + }, + "deaths_to_continues": { + "addr": "Rx28dd9", + "code": "0fb605 b8d46900 40 a2 b8d46900 a3 a0bc6900 a3 a4bc6900 9090" } } } diff --git a/instant_ending/th07.js b/instant_ending/th07.js index fb8a1e7b..0a9073a3 100644 --- a/instant_ending/th07.js +++ b/instant_ending/th07.js @@ -3,6 +3,13 @@ "zero_lives": { "code": "31 c0 9090", "title": "Set lives to zero" + }, + "deaths_to_continues": { + "code": "fe40 20" + }, + "skip_continue": { + "code": "eb 09", + "title": "Call the normal death function for 0 lives as well" } } } diff --git a/instant_ending/th07.v1.00.js b/instant_ending/th07.v1.00.js index 4137ee5b..0ad4248f 100644 --- a/instant_ending/th07.v1.00.js +++ b/instant_ending/th07.v1.00.js @@ -2,6 +2,12 @@ "binhacks": { "zero_lives": { "addr": "Rx2d0f7" + }, + "deaths_to_continues": { + "addr": "Rx2bcf1" + }, + "skip_continue": { + "addr": "Rx3e10f" } } } diff --git a/instant_ending/th07.v1.00b.js b/instant_ending/th07.v1.00b.js index d0c37afa..d6baf15f 100644 --- a/instant_ending/th07.v1.00b.js +++ b/instant_ending/th07.v1.00b.js @@ -2,6 +2,12 @@ "binhacks": { "zero_lives": { "addr": "Rx2ea0d" + }, + "deaths_to_continues": { + "addr": "Rx2d602" + }, + "skip_continue": { + "addr": "Rx4115f" } } } diff --git a/instant_ending/th10.v1.00a.js b/instant_ending/th10.v1.00a.js index 00bc0118..c9e45fad 100644 --- a/instant_ending/th10.v1.00a.js +++ b/instant_ending/th10.v1.00a.js @@ -5,6 +5,10 @@ }, "zero_lives": { "addr": "Rx17955" + }, + "deaths_to_continues": { + "addr": "Rx26a1c" + "code": "ff05 904c4700", } } } diff --git a/instant_ending/th11.v1.00a.js b/instant_ending/th11.v1.00a.js index 9a36e006..750c891d 100644 --- a/instant_ending/th11.v1.00a.js +++ b/instant_ending/th11.v1.00a.js @@ -5,6 +5,10 @@ }, "zero_lives": { "addr": "Rx1f948" + }, + "deaths_to_continues": { + "addr": "Rx327f0" + "code": "ff05 3c574a00", } } } diff --git a/instant_ending/th12.v1.00a.js b/instant_ending/th12.v1.00a.js index cc974e2a..8ee068d6 100644 --- a/instant_ending/th12.v1.00a.js +++ b/instant_ending/th12.v1.00a.js @@ -2,6 +2,10 @@ "binhacks": { "zero_lives": { "addr": "Rx21d1d" + }, + "deaths_to_continues": { + "addr": "Rx381e7", + "code": "ff05 c40c4b00" } } } diff --git a/instant_ending/th12.v1.00b.js b/instant_ending/th12.v1.00b.js index 5edc869a..8e248484 100644 --- a/instant_ending/th12.v1.00b.js +++ b/instant_ending/th12.v1.00b.js @@ -2,6 +2,10 @@ "binhacks": { "zero_lives": { "addr": "Rx21d3d" + }, + "deaths_to_continues": { + "addr": "Rx381e7", + "code": "ff05 c40c4b00" } } } diff --git a/instant_ending/th13.v1.00a.js b/instant_ending/th13.v1.00a.js index cf641cb2..dbfc9e72 100644 --- a/instant_ending/th13.v1.00a.js +++ b/instant_ending/th13.v1.00a.js @@ -2,6 +2,10 @@ "binhacks": { "zero_lives": { "addr": "Rx2bb78" + }, + "deaths_to_continues": { + "addr": "Rx448d2", + "code": "ff05 c8d74b00" } } } diff --git a/instant_ending/th13.v1.00b.js b/instant_ending/th13.v1.00b.js index 97104c2a..10e9877b 100644 --- a/instant_ending/th13.v1.00b.js +++ b/instant_ending/th13.v1.00b.js @@ -2,6 +2,10 @@ "binhacks": { "zero_lives": { "addr": "Rx2bc48" + }, + "deaths_to_continues": { + "addr": "Rx44a82", + "code": "ff05 c8e74b00" } } } diff --git a/instant_ending/th13.v1.00c.js b/instant_ending/th13.v1.00c.js index a0bff1ae..b3a34527 100644 --- a/instant_ending/th13.v1.00c.js +++ b/instant_ending/th13.v1.00c.js @@ -5,6 +5,10 @@ }, "zero_lives": { "addr": "Rx2bc18" + }, + "deaths_to_continues": { + "addr": "Rx44a52", + "code": "ff05 c8e74b00" } } } diff --git a/instant_ending/th14.v1.00a.js b/instant_ending/th14.v1.00a.js index 3d145d17..48ec55e9 100644 --- a/instant_ending/th14.v1.00a.js +++ b/instant_ending/th14.v1.00a.js @@ -5,6 +5,10 @@ }, "zero_lives": { "addr": "Rx35d32" + }, + "deaths_to_continues": { + "addr": "Rx4f617", + "code": "ff05 18784f00" } } } diff --git a/instant_ending/th14.v1.00b.js b/instant_ending/th14.v1.00b.js index 6431cf56..a873692f 100644 --- a/instant_ending/th14.v1.00b.js +++ b/instant_ending/th14.v1.00b.js @@ -5,6 +5,10 @@ }, "zero_lives": { "addr": "Rx35d42" + }, + "deaths_to_continues": { + "addr": "Rx4f617", + "code": "ff05 38584f00" } } }