Jump to content

Ragefest 3: Douchey Today, Relieved Tomorrow


MarkyJoe1990
 Share

Recommended Posts

  • 1 month later...
  • Replies 298
  • Created
  • Last Reply

Top Posters In This Topic

I decided to enter my

entry as a ragefest. I'll basically take my regular chapter, add some ragefest effects to it, then later release the ragefest version and the regular version.

Am I the only person who finds it odd that ragefest isn't very popular on SF?

Link to comment
Share on other sites

Noppity nope. I'd think a forum as active as this would be much more active in this thread than its counterpart.

Also YAAAAY another FEXP submission. Now I won't have to use my game to showcase all of the engine's features.

Oh, and you should also use that one... Idea.... That was being discussed.

Link to comment
Share on other sites

Oh boy oh boy oh boy Ragefest 3. The sadist in me is excited, as well as the masochist. And after the shenanigans that Cam and Cedar pulled off with their entries...Hoo boy. Also, as a side note that I'm surprised no one mentioned due to the fact that the deadline is March 17th, it's a little less than four weeks till the hilarity begins. Can't wait too see how much Marc and Astra rage during the commentaries. Though I fear it's gonna be tough to top the ULTIMATE TROLL move pulled by the RNG in Cam's entry...Troll King indeed.

Link to comment
Share on other sites

I'm intending to top myself. ASM shenanigans make it much easier to rig things. >:D

I'm just putting this here.

Oh ye gods. You two are scaring me now. Let's just hope Barbatos doesn't come out of nowhere and Hi-Ougi us for the inevitable use of items, and no I'm totally not suggesting an idea since I can't hack for crap, not at all. But I can't wait for the madness. -insert Shademan.exe laugh here- Oh wait, some might not get the reference. Mweeheeheehee!!!

Link to comment
Share on other sites

Oh ye gods. You two are scaring me now. Let's just hope Barbatos doesn't come out of nowhere and Hi-Ougi us for the inevitable use of items, and no I'm totally not suggesting an idea since I can't hack for crap, not at all. But I can't wait for the madness. -insert Shademan.exe laugh here- Oh wait, some might not get the reference. Mweeheeheehee!!!

Dat video lol. I like how it mocks the player at the end, so freaking trollish.

ASM is nothing compared to fexp

Link to comment
Share on other sites

ASM is nothing compared to fexp

Klok. It's programming. It's the same no matter what you call it.

It's just the Fexp is an interface that makes it easier for you because the tools are there to arrange it in an efficient manner.

Link to comment
Share on other sites

∴ FEXP is easier than ASM?

ASM is nothing compared to fexp

It's easier... but saying "nothing compared to fexp" is saying something completely different.

Fanboying over the engine is fine and all... I mean it's an amazing engine... but saying THAT shows nothing but ignorance.

Link to comment
Share on other sites

wtf am i doin

[spoiler=CODE DUMP]

HACK_FILE:

.align	2
@ Hardware offset
.long	0x08000000

@ Hook BEGIN

IFH_HOOK:
.align	2
.set	IFH_HOOK_SIZE, IFH_HOOK_END - IFH_HOOK_ST
@.org 0x080292EC
.set	IFH_HOOK_ORG, 0x080292EC
.long	IFH_HOOK_ORG
@ TODO - Figure out alignment
.long	0x00000000
.long	IFH_HOOK_SIZE

.thumb

IFH_HOOK_ST:
@ The function ends with r4-r6 and r14 getting popped anyway, so there is
@ no real need to push the lr this time.
ldr		r0, IFH_HOOK_LINK
bx		r0

IFH_HOOK_LINK:
.align	2
.long	IFH_HACK_ORG + 1
IFH_HOOK_END:

@ Hack BEGIN

.align	2
@.org 0x08D50000

IFH_HACK:
.set	IFH_HACK_SIZE, IFH_HACK_END - IFH_HACK_ST
.set	IFH_HACK_ORG, 0x08D50000
.long	IFH_HACK_ORG
.long	0x00000000
.long	IFH_HACK_SIZE

.thumb

IFH_HACK_ST:
.macro	IFH_CALL address
bl		\address - (IFH_HACK_ORG + (HACK_FILE - IFH_HACK_ST))
.endm
@ This is all missing.
ldr		r1, =0x0203A3D8
mov		r2, #0x4
ldsh	r0, [r1, r2]
cmp		r0, #0x7F
ble		M_CMP_DMG
mov		r0, #0x7F
strh	r0, [r1, #0x4]

M_CMP_DMG:
mov		r2, #0x4
ldsh	r0, [r1, r2]		@ Again?
cmp		r0, #0x0
bge		M_CMP_YDMG
mov		r0, #0x0
strh	r0, [r1, #0x4]

M_CMP_YDMG:
ldsh	r0, [r1, r2]		@ Here we go again.
cmp		r0, #0x0
beq		IFH_FUNC			@ HACKY: The old function just jumped to the end.
mov		r1, r6
add		r1, #0x7C
mov		r0, #0x1			@ I am going to assume that this value is a boolean that
strb	r0, [r1, #0x0]		@ determines if it is not going to play the 'tink' noise.

@ Function begin.
IFH_FUNC:
push	{r1-r3}				@ R0 is clobbered upon return anyway.
push	{r5, r7}
push	{r4}
ldsh	r1, [r4, #0x4]		@ If damage is 0 anyway, just return.
cmp		r1, #0x0
ble		CLEANUP
ldr		r0, WRITE_PTRS
ldr		r5, [r0, #0x0]		@ r5 is the table offset.
mov		r7, #0x34			@ r7 is the size of one entry.
ldr		r3, [r0, #0x4]		@ Prepare r3...
ldr		r3, [r3, #0x0]		@ So we can set it as the table.
mov		r2, #0x0			@ r2 is our counting register.
mov		r4, r8				@ Prepare r4...
ldr		r1, [r4, #0x0]		@ To load the enemy pointer.

CHECK_LOOP:
ldrb	r0, [r3, r2]		@ Load character from the loop.
cmp		r0, #0x0			@ Check for terminator.
beq		PASS
mul		r0, r0, r7
add		r0, r0, r5			@ Set up r0.
cmp		r0, r1
beq		PASS
add		r2, r2, #0x1
b		CHECK_LOOP			@ Continue loop.

PASS:
cmp		r0, #0x0			@ If r0 is anything but 0, we found something.
bne		TRUE
FALSE:
cmp		r4, r8				@ HACK - Check if we are on enemy or player.
beq		CLEANUP
b		NEGATE
TRUE:
cmp		r4, r8				@ If only I could do this only once...
bne		CLEANUP

CONTINUE:
mov		r4, r6				@ Set up r4 for the player table.
ldr		r1, [r4, #0x0]		@ r1 = attacking character
ldr		r3, [r0, #0x8]		@ r3 = offset of attacking characters
b		CHECK_LOOP			@ and back into the loop we go!

NEGATE:
pop		{r4}
mov		r0, #0x0			@ Set damage to zero.
strh	r0, [r4, #0x4]		@ Store it as damage.

CLEANUP:
@ FIXME: Cleanup is ugly.
cmp		r4, r7				@ If r4 is equal to r7 or r8, then we
bne		RETURN				@ have not popped it to store negated
cmp		r4, r8				@ damage to memory yet.
bne		RETURN
pop		{r4}

RETURN:
@ NOTE: This ugly-looking bunch of pops are to ensure that the stack
@ is purged properly. And then the last two are to mimic the original.
pop		{r5, r7}
pop		{r1-r3}
pop		{r4-r6}
pop		{r0}
bx		r0

.align 2

WRITE_PTRS:
.set	END_VAL, 0x0000
@ Table value
.long	0x08BDCE18
@ HACKY
.set	ENEMY_VAL, IFH_HACK_ORG + (ENEMY_TABLE - IFH_HACK_ST)
.long	ENEMY_VAL
.set	ALLY_VAL, IFH_HACK_ORG + (ALLY_TABLE - IFH_HACK_ST)
.long	ALLY_VAL

ENEMY_TABLE:
@ Default values
.byte	0x44
.byte	0x00
.short	END_VAL

ALLY_TABLE:
.byte	0x14
.byte	0x00
.short	END_VAL
IFH_HACK_END:

well at least if it works then my plans will be set into motion

Link to comment
Share on other sites

wtf am i doin

[spoiler=CODE DUMP]

HACK_FILE:

.align	2
@ Hardware offset
.long	0x08000000

@ Hook BEGIN

IFH_HOOK:
.align	2
.set	IFH_HOOK_SIZE, IFH_HOOK_END - IFH_HOOK_ST
@.org 0x080292EC
.set	IFH_HOOK_ORG, 0x080292EC
.long	IFH_HOOK_ORG
@ TODO - Figure out alignment
.long	0x00000000
.long	IFH_HOOK_SIZE

.thumb

IFH_HOOK_ST:
@ The function ends with r4-r6 and r14 getting popped anyway, so there is
@ no real need to push the lr this time.
ldr		r0, IFH_HOOK_LINK
bx		r0

IFH_HOOK_LINK:
.align	2
.long	IFH_HACK_ORG + 1
IFH_HOOK_END:

@ Hack BEGIN

.align	2
@.org 0x08D50000

IFH_HACK:
.set	IFH_HACK_SIZE, IFH_HACK_END - IFH_HACK_ST
.set	IFH_HACK_ORG, 0x08D50000
.long	IFH_HACK_ORG
.long	0x00000000
.long	IFH_HACK_SIZE

.thumb

IFH_HACK_ST:
.macro	IFH_CALL address
bl		\address - (IFH_HACK_ORG + (HACK_FILE - IFH_HACK_ST))
.endm
@ This is all missing.
ldr		r1, =0x0203A3D8
mov		r2, #0x4
ldsh	r0, [r1, r2]
cmp		r0, #0x7F
ble		M_CMP_DMG
mov		r0, #0x7F
strh	r0, [r1, #0x4]

M_CMP_DMG:
mov		r2, #0x4
ldsh	r0, [r1, r2]		@ Again?
cmp		r0, #0x0
bge		M_CMP_YDMG
mov		r0, #0x0
strh	r0, [r1, #0x4]

M_CMP_YDMG:
ldsh	r0, [r1, r2]		@ Here we go again.
cmp		r0, #0x0
beq		IFH_FUNC			@ HACKY: The old function just jumped to the end.
mov		r1, r6
add		r1, #0x7C
mov		r0, #0x1			@ I am going to assume that this value is a boolean that
strb	r0, [r1, #0x0]		@ determines if it is not going to play the 'tink' noise.

@ Function begin.
IFH_FUNC:
push	{r1-r3}				@ R0 is clobbered upon return anyway.
push	{r5, r7}
push	{r4}
ldsh	r1, [r4, #0x4]		@ If damage is 0 anyway, just return.
cmp		r1, #0x0
ble		CLEANUP
ldr		r0, WRITE_PTRS
ldr		r5, [r0, #0x0]		@ r5 is the table offset.
mov		r7, #0x34			@ r7 is the size of one entry.
ldr		r3, [r0, #0x4]		@ Prepare r3...
ldr		r3, [r3, #0x0]		@ So we can set it as the table.
mov		r2, #0x0			@ r2 is our counting register.
mov		r4, r8				@ Prepare r4...
ldr		r1, [r4, #0x0]		@ To load the enemy pointer.

CHECK_LOOP:
ldrb	r0, [r3, r2]		@ Load character from the loop.
cmp		r0, #0x0			@ Check for terminator.
beq		PASS
mul		r0, r0, r7
add		r0, r0, r5			@ Set up r0.
cmp		r0, r1
beq		PASS
add		r2, r2, #0x1
b		CHECK_LOOP			@ Continue loop.

PASS:
cmp		r0, #0x0			@ If r0 is anything but 0, we found something.
bne		TRUE
FALSE:
cmp		r4, r8				@ HACK - Check if we are on enemy or player.
beq		CLEANUP
b		NEGATE
TRUE:
cmp		r4, r8				@ If only I could do this only once...
bne		CLEANUP

CONTINUE:
mov		r4, r6				@ Set up r4 for the player table.
ldr		r1, [r4, #0x0]		@ r1 = attacking character
ldr		r3, [r0, #0x8]		@ r3 = offset of attacking characters
b		CHECK_LOOP			@ and back into the loop we go!

NEGATE:
pop		{r4}
mov		r0, #0x0			@ Set damage to zero.
strh	r0, [r4, #0x4]		@ Store it as damage.

CLEANUP:
@ FIXME: Cleanup is ugly.
cmp		r4, r7				@ If r4 is equal to r7 or r8, then we
bne		RETURN				@ have not popped it to store negated
cmp		r4, r8				@ damage to memory yet.
bne		RETURN
pop		{r4}

RETURN:
@ NOTE: This ugly-looking bunch of pops are to ensure that the stack
@ is purged properly. And then the last two are to mimic the original.
pop		{r5, r7}
pop		{r1-r3}
pop		{r4-r6}
pop		{r0}
bx		r0

.align 2

WRITE_PTRS:
.set	END_VAL, 0x0000
@ Table value
.long	0x08BDCE18
@ HACKY
.set	ENEMY_VAL, IFH_HACK_ORG + (ENEMY_TABLE - IFH_HACK_ST)
.long	ENEMY_VAL
.set	ALLY_VAL, IFH_HACK_ORG + (ALLY_TABLE - IFH_HACK_ST)
.long	ALLY_VAL

ENEMY_TABLE:
@ Default values
.byte	0x44
.byte	0x00
.short	END_VAL

ALLY_TABLE:
.byte	0x14
.byte	0x00
.short	END_VAL
IFH_HACK_END:

well at least if it works then my plans will be set into motion

If only I could understand what this meant...Though you did say you're trying to outdo your Troll King entry this time..So the only thing I feel right now is fear. A large amount of fear at how trollish this one will be. Let's just hope the RNG isn't feeling particularly trolly. RNG: -trollface- Problem?

Link to comment
Share on other sites

If only I could understand what this meant...Though you did say you're trying to outdo your Troll King entry this time..So the only thing I feel right now is fear. A large amount of fear at how trollish this one will be. Let's just hope the RNG isn't feeling particularly trolly. RNG: -trollface- Problem?

*tries to figure it out* *shakes head in confusion* *reads title* *"Invincible-!* Ahhhh

Link to comment
Share on other sites

So I was watching some of Marc's other videos a few days ago, and stumbled upon his vid announcing that his computer is being a derp. I'm kinda curious what's gonna happen to this now due to that. Will the deadline be extended? Or will something else happen entirely?

Link to comment
Share on other sites

So I was watching some of Marc's other videos a few days ago, and stumbled upon his vid announcing that his computer is being a derp. I'm kinda curious what's gonna happen to this now due to that. Will the deadline be extended? Or will something else happen entirely?

Well, I suppose I could extend the deadline considering the state of my computer... I can't really LP anything on this computer except through post-production, and even that goes poorly.

Link to comment
Share on other sites

Well, I suppose I could extend the deadline considering the state of my computer... I can't really LP anything on this computer except through post-production, and even that goes poorly.

Whatever you decide, I hope your situation is fixed. I've had computer problems before, and it sucked.

Link to comment
Share on other sites

Whatever you decide, I hope your situation is fixed. I've had computer problems before, and it sucked.

Yeah. I might buy myself a new laptop, since I have an adequate amount of money. Though, I could also get my old one fixed, but eh. Dunno.

Link to comment
Share on other sites

I won't complain if you do, but if your new computer would be new and a lot faster, that might factor into me adding reinforcements for my submission. Like I told you, my PC runs FEXP at a great speed, but for my beta testers it lags from a little to a lot. If yours were to lag at all as of now, then adding reinforcements would only make it lag even more, so I'm kinda stuck on what to do... the good thing is that I've figured out what the top-end for max events on the map VS speed on the map is, roughly 100 events is a good limit. (And I have 140ish T__T)

Soooo uhhhh not sure what to do. I may make 2 versions of the map, one with reinforcements, one without them, and if the one with reinforcements lags for you, play the one without. If the one without lags... FML.

Link to comment
Share on other sites

Klok. It's programming. It's the same no matter what you call it.

It's just the Fexp is an interface that makes it easier for you because the tools are there to arrange it in an efficient manner.

FEXP is pretty easy to program with, and if I could master the basics, most things ASM could do, FEXP could do with half or even a quarter of the hastle, possibly less. And, because I'm lazy, in my book easier = better, even if ASM might be more powerful or something xP

∴ FEXP is easier than ASM?

Easier, more than likely yesh.

Like Cam's code up there. I assume "Invincibility Flag" means it makes a player or unit invincible, but in FEXP something like that is pretty much just "Set actor 1 invincible = true". Redonculously easy.

Edit: FFS how did I make a double post hnnnggghhh this slow net is ticking me off.

Edited by Klokinator
Link to comment
Share on other sites

FEXP is pretty easy to program with, and if I could master the basics, most things ASM could do, FEXP could do with half or even a quarter of the hastle, possibly less. And, because I'm lazy, in my book easier = better, even if ASM might be more powerful or something xP

Easier, more than likely yesh.

Edit: I guess I'm kinda crossed the line over here...

I guess I should also take into account your perspective.

I'm biased, obviously, because I've had experience with ASM. And frankly, it's just like any other programming language. It has the ability to do whatever you want it to do as much as any other thing can do.

It's just the question of efficiency.

And I guess your words of "it has nothing on FEXP" kind of made me think you were being a little shallow. But as Trent said to me on Skype, to the average person, it DOES "have nothing over it" in terms of ease.

Like Cam's code up there. I assume "Invincibility Flag" means it makes a player or unit invincible, but in FEXP something like that is pretty much just "Set actor 1 invincible = true". Redonculously easy.

Like I said, because the toolkit ALREADY DID it for you. Hmm... I WONDER what you would have had to do if it wasn't already done for you?

I took your comment like that saying "You all should just give up and go to FEXP" without actually realizing the work it does FOR you is the same as what Cam did.

I apologize for that... but seriously, appreciate the ease FEXP gives you a bit more.

The way you were posting, you were fanboying about it and made me take it as "I'm waving it in your face. The work you do is stupid and inefficient."

AND like Trent also said... "Geez. Talk about taking things personally."

I also apologize for that.

Edited by shadowofchaos
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...