caitsith2
He/Him
Player (47)
Joined: 3/26/2004
Posts: 194
Started a TAS for this game. WIP #1 - Any % Takes damage to save time Abuses Programming errors (Death is supposed to happen when your hps reach 0.) Manipulates Luck The Door open code for the computer input, changes each time you change the room you are currently in. Each door open code consists of the digits 0-9, such that there are no repeating digits. In addition to that, the code entry order does not matter. Since the code does not change till you leave the room, you can save state, go and fetch each of the four door codeword capsules, to find out the code, load state, then enter the code. Even better, Use a memory viewer/editor to view the current door open code. There are a few other useful codes. Now, if I didn't use the invincibility glitch, I would be using 2222 (Laser barrier stop) in certain rooms. I will be using code 6666 (Warp point A) (After getting the first set of upgrades.) Code 7777 (Warp point B) is going to be used at least once as well. (I have to go back and get one of the floppies, after getting my second zillion upgrade, and that will be the quickest way to do so.) The only initial damage taken before the invincibility glitch comes into play, is walking through the first few laser barriers I come across. The purpose of me collecting the OPA OPA's are to upgrade my jump level. (which I will need later on.) In beating the last boss after setting the main computer to self destruct. (code 8888), I am going to try and get out of the base without resetting the timer. (Should be easy in TAS mode.) The luck on the door open code is determined by the frame you enter the room, as well as your input. (ie, enter room continuous left, get code 1567, stop 1 frame early, then proceed to left, you get maybe 1268, and stop 2 frames early, then proceed, you get something different yet. (edit - Updated the TAS.) (edit 2) Finished first run through. Still room for improvement. Specifically, Manipulate luck, so that Code words 1-3 never show up when entering the door open command. The most ideal would be to have alternating 7890 and 6789 for all of the door open codes, although that would require extensive luck manipulation. The Second opa opa in the zillion upgrade room is locked up behind a door where you would have to bruteforce all of the possible codes. (you only get 3 attempts per ID card, (although that could be unlimited, if you only used 2 out of 3 attempts each time.) However, if you look at the right ram address. (can't remember which one that was, but until dega tas supports memory viewing, you need an external tool anyhow for this purpose.), you can find out what the current open door code is.
caitsith2
He/Him
Player (47)
Joined: 3/26/2004
Posts: 194
Started on a second run through
Any %
Manipulates Luck  (Now taking minimum code word of 4 (0 is 10))
Takes Damage to save time.  (only one instance)
WIP2 Saved ~300 frames so far. (Now I figured out exactly how many ID cards I need to collect through out the game. Also trying to minimize number of landings from high ground to low ground, as each landing costs 10 frames without any forward movement whatsoever.)
Former player
Joined: 3/30/2004
Posts: 359
Location: Borlänge - Sweden
Totaly love it. :) keep it up.
Wheeeehaaa.. Yaaayy..
caitsith2
He/Him
Player (47)
Joined: 3/26/2004
Posts: 194
Updated WIP2 - Saves 878 frames over WIP1 now. Also figured out which OPA OPA's are being skipped from this point on. (I only need 4 of them to get my jump power to the max.) Still working out where to grab my fourth ID card from. (Since the warp commands are used 3 times, with each one costing an ID card, I need 4 of them to continue on.) --- Edit --- I looked at how left/right and up/down is handled. It seems to be specific in the code to handle left/right as move right when walking, left when crawling, right when inputting computer data. Up/Down is handled as always going up. There don't seem to be any glitches related to this whatsoever. --- Edit 2 --- Found a glitch invovling the elevator shaft. This will be most useful in the lower left corner elevator shaft. (which is the longest one in the game.) The trick is that normally, the elevator cannot go past the "top". However, the from the initial placement, the glitch itself won't work. However, you can set the elevator 1 pixel above initial placement. THe glitch then will set the elevator up about 3 pixels from current position. (The glicth is jump to full height, and land on the elevator.) Its at the very top that the game does not check to see if the elevator cannot go up any further, when jumping full height possible and landing back on the elevator. The total frames saved by performing the glitch is about 150. (It is faster to fall down the shaft than to ride the elevator.) The game has no fall damage implementation whatsoever. It is faster to ride the elevator down 3 screens or less, but faster to glitch fall 4 screens or more. ---- EDIT 3 ---- The game auto detects the Sega master system hardware it is running on, and treats the end results accordingly. If started up on japanese hardware, then you get japanese text, if started up on US/European hardware, then you get english text. Because of this, a test to find out which region starts up faster was done. Turns out it is about 80 frames faster to start from japanese hardware. Thats because one of the intro screens is skipped, plus there are fewer screens of mission info text.
caitsith2
He/Him
Player (47)
Joined: 3/26/2004
Posts: 194
A new WIP, going for 100%, and really pushing the luck manipulation. It equally applies to both how the norsa soldiers react, and what the open door command is. I am avoiding any codes that require a 1, 2, or 3 in the code. http://dehacked.2y.net/microstorage.php/info/1071475274/Zillion_WIP.mmv The basic algorithm when you activate the computer is as follows. Push up, release up. Wait 36 frames. Push Left. A minimum of 43 frames holding left. (Gets to 7), Maximum of 91 frames, (gets to 1) Let go of Left. Wait a minimum of 7 frames (if at 1), to a maximum of 55 frames, (if at 7). Push button 1 or button 2. Move right a minimum of 8 frames. (to the next digit.) push button 1 or button 2. Move right a minimum of 8 frames. (to the next digit.) push button 1 or button 2. Move right a minimum of 8 frames. (to the next digit.) push button 1 or button 2. Move right a minimum of 9 frames. (to the enter command) push button 1 or button 2. wait till screen clears, and tells you to push exit. push button 1 or button 2 one last time. resume game. If entering a command other than door open, when input is ready, Push button 1, push button 2, push button 1, push button 2, then go to the enter button, and go from there. Another change, is that I have chosen not to use the invincibility glitch this time around, so damage is only taken when it actually saves time, or if there is no other way. *** EDIT *** - Didn't notice the link was broken. *** EDIT 2 *** - Updated link with current WIP version.
NitroGenesis
He/Him
Editor, Experienced player (556)
Joined: 12/24/2009
Posts: 1873
caitsith2 wrote:
A new WIP, going for 100%, and really pushing the luck manipulation. It equally applies to both how the norsa soldiers react, and what the open door command is. I am avoiding any codes that require a 1, 2, or 3 in the code. http://dehacked.2y.net/microstorage.php/info/1347843189/Zillion%20%28UE%29%20%28V1.1%29%20%5B!%5D.mmv The basic algorithm when you activate the computer is as follows. Push up, release up. Wait 36 frames. Push Left. A minimum of 43 frames holding left. (Gets to 7), Maximum of 91 frames, (gets to 1) Let go of Left. Wait a minimum of 7 frames (if at 1), to a maximum of 55 frames, (if at 7). Push button 1 or button 2. Move right a minimum of 8 frames. (to the next digit.) push button 1 or button 2. Move right a minimum of 8 frames. (to the next digit.) push button 1 or button 2. Move right a minimum of 8 frames. (to the next digit.) push button 1 or button 2. Move right a minimum of 9 frames. (to the enter command) push button 1 or button 2. wait till screen clears, and tells you to push exit. push button 1 or button 2 one last time. resume game. If entering a command other than door open, when input is ready, Push button 1, push button 2, push button 1, push button 2, then go to the enter button, and go from there. Another change, is that I have chosen not to use the invincibility glitch this time around, so damage is only taken when it actually saves time, or if there is no other way.
phpBB doesn't like it when you put URL around links.
YoungJ1997lol wrote:
Normally i would say Yes, but thennI thought "its not the same hack" so ill stick with meh.
caitsith2
He/Him
Player (47)
Joined: 3/26/2004
Posts: 194
Okay, previous post edited, to unbreak the link.
caitsith2
He/Him
Player (47)
Joined: 3/26/2004
Posts: 194
Updated previous post again, with most up to date progress. Next step will be to rescue champ, get the floppy, then 7777 warp and finish it, in that order.
caitsith2
He/Him
Player (47)
Joined: 3/26/2004
Posts: 194
One actual detail of the computer door open code, is that there is a bias of getting digits 4-9 more often than any other codes. This is because the actual code to derive the random door code is as follows.
;Ram is initialized as follows.
;C1F4: 00 01 02 03 04 05 06 07 08 09
;When a given digit is picked, its value is stored within C1F0-C1F3, then replaced with 0xFF, so that it doesn't get used again.

	LD B, 4
	LD DE, 0xC1F0
	LD H, 0xC1
-:	CALL get_random_byte
	AND 0x0F
	CP 0x0A
	JR C, +
	SUB 0x06		;This is where the bias towards 4-9 comes from.
	ADD A, 0xF4
	LD L, A
	LD A, (HL)
	CP 0xFF		;If equal, value is already used. Fetch another random number.
	JR Z, -
	LD (HL), 0xFF	;Make sure this value is never used again.
	LD (DE), A		;And store this value as one of the door code digits.
	INC E
	DJNZ -
	RET			;End of random door code routine.


;Called Once per frame,  and also called at least 4 times, when picking a new door unlock code.
get_random_number:
	PUSH HL
	LD HL (C108)	;PRNG Seed
	LD A, H
	RRCA		;\
	RRCA		;|
	XOR H		;|
	RRCA		;|
	XOR L		;|-- Get Carry Flag
	RRCA		;|
	RRCA		;|
	RRCA		;|
	RRCA		;|
	XOR L		;|
	RRCA		;/
	ADC HL, HL	; Carry Flag is used here.
	JR NZ, +
	LD HL, 0x733C	; Very rarely, does the final HL == 0x0000.
+:	LD A, R
	XOR L
	LD (C108), HL
	LD (C10A), A	;Just in case this random byte will be used later.
	POP HL
	RET
Because randomness depends on register R, sometimes, when on the room to room elevators, picking what frame to stop going up/down does not result in a different code, since it is taking the same number of cycles. The only way to manipulate the code on those elevators, is to either stop for more than one frame, or to wobble left/right.
Jungon
He/Him
Player (51)
Joined: 4/2/2009
Posts: 376
Location: Porto Alegre - Brazil
Wouldn't it be some frames faster if you rescued Apple after backtracking for the third floppy disk? getting the z.pw 3 before, since it kills enemies in one hit instead of two.. EDIT: (23/05/2014) Is it okay to kneel instead of jumping right away when you enter the first room? It feels like it would be a good test to be made +D And.... wouldn't it be a good idea testing on how faster can one be getting the death glitch on that elevator right before getting to level 5?
*Jungon*/*Johnnyz* smilie weirdo =P ^^ o.o @__@ +D