Posts for gocha


1 2
5 6 7
16 17
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
MUGG wrote:
A full run has been uploaded to nicovideo. Seems to be a testrun; not sure about the author.
It's done by WaddleDX.
I am usually available on Discord server or Twitter.
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
I enjoyed the run all the time. Yes, it was very entertaining. Awesome job, Cpadolf.
I am usually available on Discord server or Twitter.
Post subject: Re: snes9x 1.43 v16 doesn't run in Win9x
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
I know. It doesn't work since VS2008 doesn't support them.
I am usually available on Discord server or Twitter.
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
klmz wrote:
Do you have any future plan for a non-out-of-bound run? I'd like to join it as well. :p
I may do a new run (glitched v2, glitchless, Julius Mode, or all souls run... I'm quite not sure) after desmume 0.9.5 gets released. It doesn't have annoying lags anymore.
I am usually available on Discord server or Twitter.
Post subject: AviSynth script I usually use
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
Here I show what I usually use for DS encoding.
AviSource("ds_part1.avi")
# If segmented: AviSource("ds_part1.avi")+AviSource("ds_part2.avi")+AviSource("ds_part3.avi")+...

miniScreens = last
upperScreen = Crop(0,0,256,192).PointResize(512,384) -- Crop and Simple2X
lowerScreen = Crop(0,192,256,192).PointResize(512,384) -- Crop and Simple2X

mainScreen = lowerScreen
# If you want to switch the main screen display, write something like the following line instead:
# mainScreen = lowerScreen.Trim(0,630)+upperScreen.Trim(631,1414)+lowerScreen.Trim(1415,Framecount-1)

mainScreen.StackHorizontal(miniScreens)

# Framerate reduction, if needed: ChangeFPS(FrameRateNumerator, FrameRateDenominator*2)
# If you want to blend every 2 frames, instead: AssumeFieldBased.Weave.VerticalReduceBy2
ConvertToYV12()
Additionally, some extra resize filters ;)
LoadCPlugin("ffavisynth.dll")

# Simple2x resize (wrapper of PointResize)
function Simple2xResize(clip clip, float "src_left", float "src_top", float "src_width", float "src_height")
{
	src_left = default(src_left, 0)
	src_top = default(src_top, 0)
	src_width = default(src_width, 0)
	src_height = default(src_height, 0)
	return clip.PointResize(clip.Width * 2, clip.Height * 2, src_left, src_top, src_width, src_height)
}

# Super2xSaI resize (using ffdshow plugin)
function Super2xSaIResize(clip clip, float "src_left", float "src_top", float "src_width", float "src_height")
{
	src_left = default(src_left, 0)
	src_top = default(src_top, 0)
	src_width = default(src_width, 0)
	src_height = default(src_height, 0)
	return clip.Crop(src_left, src_top, src_width, src_height).ffdshow("null","isResize=1,resizeMethod=14")
}

# 2xSaI resize (using ffdshow plugin)
function 2xSaIResize(clip clip, float "src_left", float "src_top", float "src_width", float "src_height")
{
	src_left = default(src_left, 0)
	src_top = default(src_top, 0)
	src_width = default(src_width, 0)
	src_height = default(src_height, 0)
	return clip.Crop(src_left, src_top, src_width, src_height).ffdshow("null","isResize=1,resizeMethod=15")
}

# hq2x resize (using ffdshow plugin)
function Hq2xResize(clip clip, float "src_left", float "src_top", float "src_width", float "src_height")
{
	src_left = default(src_left, 0)
	src_top = default(src_top, 0)
	src_width = default(src_width, 0)
	src_height = default(src_height, 0)
	return clip.Crop(src_left, src_top, src_width, src_height).ffdshow("null","isResize=1,resizeMethod=16")
}
Edit: If you need to rotate screen, you should look TurnLeft, TurnRight or Turn180 and modify the script. Edit: If you want to a few pixels of gap, AddBorders will help.
I am usually available on Discord server or Twitter.
Post subject: RNG simulator Lua
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
I wrote simple scripts which emulates RNG (ported from my PoR RNG simulator). CVAoS_RNG.lua - show how many times RNG was called per frame. CVAoS_RNG_WriteMem.lua - call RNG N times and write the final value to RAM. Edit: added simple watchlist as well - CVAoS_U.wch Edit: impressive WIP, as usual.
I am usually available on Discord server or Twitter.
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
querschnitt wrote:
hey guys. i can't get desmume 094 to work.. when i start it, nothing happens! it just crashed! and the send error report dialog appears :(
That might be because of SSE. Have you tried the official 'nosse' binary? If that allows you to boot up desmume, that's the cause of issue. Edit: another suggestion, if you set 3D renderer from OpenGL to SoftRasterizer, it might work well (my friend experienced such a problem before).
I am usually available on Discord server or Twitter.
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
FractalFusion wrote:
In Tetris DS, sometimes saving and reloading causes part of the screen to shift upward. This occurs when using DeSmuMe-rr v0.9.4+. This does not occur with the official DeSmuMe v0.9.4 or with DeSmuMe-rr v0.9.2+.
0.9.4+ sometimes causes a graphic glitch when a state is loaded. I experienced that the emu ignores the fade level of the screen on state load. If it's also occurs on the latest svn binary, it should be known by official developer team as well. (my fade problem doesn't occur, it seems) Edit: ported a old fix from trunk. It fixes the issue but also introduces a new issue (at least for OoE).
I am usually available on Discord server or Twitter.
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
ShinyDoofy wrote:
MUGG wrote:
So how to produce an AVI with only a single screen (the upper one in my case) recorded?
According to gocha, it's already implemented.
Hmm, when did I say such? I think that's not true.
ShinyDoofy wrote:
you might go and use Avisynth with the appropriate Crop filter.
This is the same as what I would say.
I am usually available on Discord server or Twitter.
Post subject: RNG Information (Lua added!) / gocha's Test Run
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
You may know, but I find a detailed explanation about the RNG of this game. http://www.gamespot.com/ds/action/castlevaniaorderofecclesia/show_msgs.php?topic_id=m-1-46105317&pid=945837&page=12 I wrote up the RNG in Lua.
-- Castlevania: Order of Ecclesia - RNG simulator

require("bit")

-- pure 32-bit multiplier
function mul32(a, b)
	-- separate the value into two 8-bit values to prevent type casting
	local x, y, z = {}, {}, {}
	x[1] = bit.band(a, 0xff)
	x[2] = bit.band(bit.rshift(a, 8), 0xff)
	x[3] = bit.band(bit.rshift(a, 16), 0xff)
	x[4] = bit.band(bit.rshift(a, 24), 0xff)
	y[1] = bit.band(b, 0xff)
	y[2] = bit.band(bit.rshift(b, 8), 0xff)
	y[3] = bit.band(bit.rshift(b, 16), 0xff)
	y[4] = bit.band(bit.rshift(b, 24), 0xff)
	-- calculate for each bytes
	local v, c
	v = x[1] * y[1]
	z[1], c = bit.band(v, 0xff), bit.rshift(v, 8)
	v = c + x[2] * y[1] + x[1] * y[2]
	z[2], c = bit.band(v, 0xff), bit.rshift(v, 8)
	v = c + x[3] * y[1] + x[2] * y[2] + x[1] * y[3]
	z[3], c = bit.band(v, 0xff), bit.rshift(v, 8)
	v = c + x[4] * y[1] + x[3] * y[2] + x[2] * y[3] + x[1] * y[4]
	z[4], c = bit.band(v, 0xff), bit.rshift(v, 8)
	v = c + x[4] * y[2] + x[3] * y[3] + x[2] * y[4]
	z[5], c = bit.band(v, 0xff), bit.rshift(v, 8)
	v = c + x[4] * y[3] + x[3] * y[4]
	z[6], c = bit.band(v, 0xff), bit.rshift(v, 8)
	v = c + x[4] * y[4]
	z[7], z[8] = bit.band(v, 0xff), bit.rshift(v, 8)
	-- compose them and return it
	return bit.bor(z[1], bit.lshift(z[2], 8), bit.lshift(z[3], 16), bit.lshift(z[4], 24)),
	       bit.bor(z[5], bit.lshift(z[6], 8), bit.lshift(z[7], 16), bit.lshift(z[8], 24))
end

--------------------------------------------------------------------------------

local OoE_RN = 0

function OoE_Rand()
	OoE_RN = bit.tobit(mul32(bit.arshift(OoE_RN, 8), 0x3243f6ad) + 0x1b0cb175)
	return OoE_RN
end

--------------------------------------------------------------------------------

-- RNG test code
OoE_RN = 0xf7bc2d8b
for i = 1, 64 do
	io.write(string.format("%08X", OoE_Rand()))
	if i % 8 == 0 then
		io.write("\n")
	else
		io.write(" ")
	end
end
More complicated version: http://code.google.com/p/gocha-tas/source/browse/trunk/OrderOfEcclesia/LuaScripts/CVOoE_RNG.lua I'm really looking forward to next WIP time, by the way ;) Edit: I'm gathering experiences http://www.youtube.com/watch?v=SjF-kEwJBKw
I am usually available on Discord server or Twitter.
Post subject: Re: Why should we use fceux instead of fceu?
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
ramond wrote:
By the way, did your guys test FCEUX on Win9X? It doesn't work on Win9X any more! Neither does DeSmuME!
VS2008 really doesn't support Win9x. Link: Visual Studio 2008 and Windows 9x I tried to hex-edit snes9x exe to make it work with win9x, but I failed.
I am usually available on Discord server or Twitter.
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
moozooh wrote:
Does it mean it won't lag even in places where lag is naturally occurring?
To reduce lags which also occurs in real hardware is not my attempt, but
Sir VG wrote:
The map screen almost seems to run TOO fast actually.  It's weird - it just feels a hair fast to me.
Hmm, is it indeed? For reference: http://www.youtube.com/watch?v=bk0u94bf21M The update is quite simple.
Index: ./src/armcpu.cpp
===================================================================
--- ./src/armcpu.cpp	(revision 2830)
+++ ./src/armcpu.cpp	(revision 2831)
@@ -494,46 +494,49 @@
   return TRUE;
 }
 
+bool fixCycleCount = false;
 
 template<int>
 u32 armcpu_exec()
 {
-        u32 c = 1;
+	u32 c = fixCycleCount ? 0 : 1;
 
	//this assert is annoying. but sometimes it is handy.
	//assert(ARMPROC.instruct_adr!=0x00000000);
 
 #ifdef GDB_STUB
	if (ARMPROC.stalled)
		return STALLED_CYCLE_COUNT;
 
	/* check for interrupts */
	if ( ARMPROC.irq_flag) {
		armcpu_irqException( &ARMPROC);
	}
 
-        c = armcpu_prefetch(&ARMPROC);
+	c += armcpu_prefetch(&ARMPROC);
 
	if ( ARMPROC.stalled) {
		return c;
	}
 #endif
 
 	if(ARMPROC.CPSR.bits.T == 0)
 	{
		if((TEST_COND(CONDITION(ARMPROC.instruction), CODE(ARMPROC.instruction), ARMPROC.CPSR)))
 		{
 			if(PROCNUM==0) {
 #ifdef WANTASMLISTING
				char txt[128];
 				des_arm_instructions_set[INSTRUCTION_INDEX(ARMPROC.instruction)](ARMPROC.instruct_adr,ARMPROC.instruction,txt);
 				printf("%X: %X - %s\n", ARMPROC.instruct_adr,ARMPROC.instruction, txt);
 #endif
 				c += arm_instructions_set_0[INSTRUCTION_INDEX(ARMPROC.instruction)]();
			}
 			else
 				c += arm_instructions_set_1[INSTRUCTION_INDEX(ARMPROC.instruction)]();
 		}
+		else if (fixCycleCount)
+			c++;
 #ifdef GDB_STUB
         if ( ARMPROC.post_ex_fn != NULL) {
             /* call the external post execute function */
I am usually available on Discord server or Twitter.
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
Awesome WIP as always. Soma's fast stabbing makes me laugh. Keep going, Yrr. Note: When I played the movie for the first time, it desynced around Catoblepas. VBA seems to have a desync cause.
I am usually available on Discord server or Twitter.
Post subject: Test video of LagReduction option
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
I put a test video of LagReduction option here. http://www.youtube.com/watch?v=ZDM1jxu_TR4
I am usually available on Discord server or Twitter.
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
moozooh wrote:
Does resetting in-game time incur any other consequences?
No, all additional resets don't affect time. They are just my preference, not exactly needed.
I am usually available on Discord server or Twitter.
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
Derakon wrote:
Whatever you end up doing for Hard Mode, I definitely recommend ditching all your equipment, souls, and money before starting the run. I always thought it was lame that DoS didn't support a "clean" Hard Mode start. It's not nearly so interesting if you carry all your cool toys over from normal mode.
Yeah, and that's already done (with no cheats). My question is if I can use some cheat codes to reset some extra things like ingame time.
I am usually available on Discord server or Twitter.
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
moozooh wrote:
How much longer do you think it will be?
I'm really not sure. Perhaps one or a few minutes?
moozooh wrote:
Because I'd choose Hard mode for mostly the same reason as with AoS: having to actively use souls to speed up killing.
Ah, that sounds the same as what I thought first.
moozooh wrote:
I take it skipping cutscenes is possible regardless of the mode?
Yes.
I am usually available on Discord server or Twitter.
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
Yay! It's accepted! Thank you! \(^o^)/
I am usually available on Discord server or Twitter.
Post subject: Preferred difficulty level for all souls run
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
Another question: Which should we choose for a all souls run, normal or hard? If we did it in hard mode, the game will give us Hell Fire (not counted in soul collection rate) soul after it's completed, but it will make the run longer.
I am usually available on Discord server or Twitter.
Post subject: Re: Using hacked save data for clean hard mode
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
There is a big difference between AoS and DoS. In AoS, you can start a new hard game even if you deleted all saves. In DoS, you can start hard mode only from the "CLEAR" icon above the save. The game doesn't ask the difficulty on just a new game. This is why I cannot start a clean hard mode game in a normal way. Edit: Wait... A Japanese site* says like it's possible to start new game with hard mode. Is this because I completed the game by a strange way? I wonder... It seems to be not true.
I am usually available on Discord server or Twitter.
Post subject: Using hacked save data for clean hard mode
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
Question: Can I use hacked save data when I want to start a new game in hard mode? To start the hard game mode, we must start it as New Game+. I wanted to start it from scratch. I firstly made a movie for clean save data, which is rerecorded after my glitched run, then releases all souls and sells all items and contributed all money to Hammer. As a result, natural save data is made successfully. However, that doesn't reset the ingame time, enemy database, and "Library" database. Especially, I wanted to reset ingame timer for reference. Then, I made hacked save data in the following steps:
  1. Play my glitched run until Dmitrii get defeated, and stop the movie
  2. Use Potion and Mind Up and go to the nearest save room from the warp
  3. Unequip all souls and items
  4. Write zero to $020F71E0-020F7226 (eliminate all weapons, armors and accessories)
  5. Write zero to $020F71BC-020F71D1 (eliminate all items)
  6. Write zero to $020F70D0-020F710F (eliminate all souls)
  7. Write zero to $020F7150-020F715E (clear enemy database)
  8. Write zero to $020F71AC-020F71B3 (clear "Library" database)
  9. Write zero to $020F744C-020F744F (no money)
  10. Write zero to $020F7255 (first explanation of souls = auto equip; not effective after all)
  11. Activate a cheat code which always overwrites $020F703C to zero (to reset ingame time)
  12. Save the game
  13. Write $08 to $020F71A9 (activate the warp to The Abyss)
  14. Write $30 to $020F718A and go to the last room (complete the game without the last battle) (note: no moneys and other things are obtained on the way)
  15. Export save file after the data has been saved
It still has map data but it's not a problem since the game reset it on new game+. Is it allowed to use this hacked save data for hard mode runs? Tell me your opinion, please.
I am usually available on Discord server or Twitter.
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
Thank you for your big praises, guys! I'm so glad! \(>ヮ<)/
Satoryu wrote:
I wonder if this can be duplicated without TASing.
You mean Menace skip, right? I think you can if you remember when you should do sliding (i.e. where to visit). In the run, I set $30 ($10+$20) to $020F718A and that needs a sliding at very exact timing. However, you can also skip Menace by setting only $20 (here's a video when I set $20 there). Also, if you set $40 there, you'll experience infinite Menace battle. About alternative encode: I'm glad you liked my nico encode and two encodes are welcome :) I made the video in the following steps:
  1. Output raw video first (no extra displays) with running a lua script, which outputs RAM values to a file on emu.registerafter.
  2. Write an AviSynth script (*.avs) and arrange the screen design.
  3. Load the avs by AviUtl (lua for aviutl installed). Run an AviUtl Lua script, which imports input info from dsm and RAM values from a file generated by step #1, and overlays them on the video.
ShinyDoofy wrote:
I haven't watched it myself, but I do hope it'll sync with the svn trunk. For the sake of encoding it, of course.
No, the latest has a different timing. However, the movie can be played on official 0.9.4. Try compiling 0.9.4 branch on svn. If you use an official precompiled binary, do not emulate anything before movie play, or you'll experience random desyncs.
Nicos wrote:
also can you provide the save file?
Here goes (raw save file)
I am usually available on Discord server or Twitter.
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
Hi, let me archive some of extremely messy craps that I used for video editing here, please. RamReader.lua RamReader_NicoVideo.lua RamReader_YouTube.lua RamWriter.lua CV-DoS-glitched-tas_NicoVideo.avs CV-DoS-glitched-tas_YouTube.avs These files are also archived at r59 in the svn repository.
I am usually available on Discord server or Twitter.
Post subject: Snes9x 1.43 v16 (svn r20)
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
Since snes9x confuses people due to not releasing for a long time, I decided to release the latest version as v16 for the time being. Downloads Changes
  • A lot of desync fixes. Older versions cannot read the new savestate. Also, a new sync flag is added to SMV. Most SMV editors might not care about the new flag byte. Be careful, or you might experience a desync.
  • Improved Lua engine.
  • Fixed noise generation.
  • Added 4-point gaussian interpolation.
  • Added lag counter and modified frame display around.
  • Win32: Added several settings from snes9x.cfg to GUI.
  • Win32: Redesigned menu overall and added some new settings.
  • Win32: Merged OV2's new sound code.
Notes
  • "Clean FastROM setting" must be always checked, unless if you were going to continue your old work.
  • Sync Sound issue under multicore CPU might be gone, might not.
_________________ *1 It's not added to the downloads section yet, since it's not quite easy to remove libs from the latest source code, and it makes compiling harder.
I am usually available on Discord server or Twitter.
gocha
Any
Emulator Coder, Experienced Forum User, Published Author
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
Thank you Rockman! But our Dr. Wily has gone to another castle! What will your next submission be? More improved Rockman 2? I think I look forward to it ;) Obvious yes, especially at Woodman's stage.
I am usually available on Discord server or Twitter.
1 2
5 6 7
16 17