Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
Quick translation attempt:
段位: grade/rank
初段: the first grade
スタート: start
遊び方: how to play
データ変更/消去: modify/erase data
段位認定: grade qualification
段位の初期化: initialize grade
チャレンジ: challenge
戻る: back
挑戦可能回数 xx回: hmm, it tells you how many times you can try.
そこまで!!: Finish!! , Game Set!! , etc.
クリアタイム: completion time
スリザーリンク認定段位 ~初段~: (your) slither link certificated grade -First Grade-
名前変更: change name
I can understand those Japanese text very well (I'm Japanese :p), but I cannot translate them to English very well. Probably these English labels can be improved.
Edit: Happy New Year, everyone.
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
Derakon: Tokimeki Memorial, as Satoryu already mensioned. For me, the graphic of cutscenes in this game really reminds me it, a famous galge of Konami :p
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
"Well done! Here, take this." Yes Vote received.
"Well done! Here, take this." Yes Vote received.
"Well done! Here, take this." Yes Vote received.
...
Good improvement to watch, especially lag-free boss fights are awesome, voted yes.
Well, the latter half part is totally done by arukAdo, not me. So this isn't a self-praise :p
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
I fixed a few of bugs in desmume 0.9.5, so I'm going to put my updated version here.
Download improved version of DeSmuME 0.9.5
Note: It's PGOed but I didn't run the exe so much during optimization since it ran very slow on my machine (1-2 fps!), oh well
Changes
Lua: enhanced gui.overlay(). The new one can overlay a part of image and load indexed image
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
Actually there were some players who was making several short runs with 0.9.5 svn wip in Japan, so it's somewhat tested before release...
Well, I think 0.9.5 is as stable as 0.9.4+ at least. There weren't so many changes which are related to sync-stability compared to 0.9.4+ IIRC. And I haven't experienced any desyncs with both versions (as you know, I'm one of DS Castlevania TASers.) So I really don't recommend people using ancient 0.9.4+.
I guess you've loaded inconsistent savestate during working anyway. It'd be better if desmume did savestate inconsistency check.
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
ShinyDoofy, thank you for your encode. It looks good enough for me, too.
Edit: can someone put it to the publication page? http://tasvideos.org/1364M.html
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
I tried to autoresync of DSM by Lua. I tried to port my Dawn of Sorrow TAS (0.9.4 timing) to 0.9.5. It failed anyway, but it synced fine for about 5 minutes. So I'm going to tell what I did. It's simple.
Run old emulator, load the game and pause emulator, load your movie (w/o unpause), and run lagrec.lua.
Start movie playback and stop Lua when movie ends. A file named "lag.db" (example of lag.db) should be output somewhere (emulator root or script root in most cases).
Remove all lag frame input from your movie by using lagtrim.lua. Run it with standalone Lua from commandline "lagtrim.lua your.dsm lag.db > nolag.dsm" or something like that.
Open dsmplay.lua with a text editor, and modify kmv_path to load the one generated by step #3 (nolag.dsm). Also, put dsmlib.lua to the same directory.
Run new emulator, load the game and pause emulator, create a new movie with pause, run dsmplay.lua, then unpause the emulator and see how it will go.
Tips:
If you cannot load a file with a relative path, write a full path instead.
If require("modulename") don't work well, use dofile("fullpath/modulename.lua") instead.
Differences between different versions of emulator aren't only just timing differences. So it sometimes fails, and sometimes successes.
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
Christmas is getting nearer and still haven’t found any gift ideas?
Don’t worry anymore, here’s the perfect present : a new DeSmuME release!
0.9.5 introduces an entirely rewritten main emulation loop
This totally changes the timing, and totally breaks old savestates.
The OSX build is now based on the GTK port which is more up-to-date.
Assorted Highlights:
synchronous SPU mode to fix streaming sounds
win32: lua engine, path configuration, 7z dearchiving support
Lua: added Lua from 1.43. some functions works buggy, and some functions are not implemented yet.
Win32: added Gens compatible RAM Watch and RAM Search. Old search is still left. You can convert old watchlist by using it.
Win32: added trace logger. (ported from bsnes, thanks byuu)
Win32: Merged OV2's new sound code.
1.43 vs. 1.51
For coders, 1.43 is much harder to manage than 1.51. One of big reasons is that, 1.43 has two different cores, C and ASM. That's why I've wanted to stop 1.43 development.
1.51 runs slower than 1.43 (i.e. more lags), however, I don't know if 1.51 is slower than real hardware or not. If you find a game which obviously runs slower than bsnes does, just let me know. *2
At the moment, 1.43 wins against 1.51 in better Lua implementation. In 1.51, some functions are not implemented yet, and some functions work buggy. We need to improve it.
As far as I know, it has no desync causes (asynchronous sound mixing excluded). If you find one, just let me know, please.
Other Notes
Windows: Check Sync Sound before you start writing a video to AVI. It should improve sound resolution.
Windows: Do not set frequency to 32 kHz, before you start writing a video to AVI. That will cause a audio desync. Use 48 kHz instead.
_________________
*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.
*2 Unfortunately, .kkapture doesn't work well for bsnes v0.055. It works successfully when I choose BMP+WAV output, but it ends incompletely when I try to output AVI instead of BMP+WAV. :(
Lua: embedded LuaBitOp as a better/common bit operation library.
Lua: added/changed a lot of functions. It has become like Gens a little more.
Lua: windows: added Lua console.
Win32: added Gens compatible RAM Watch and RAM Search. Old search is still left. You can convert old watchlist by using it.
Win32: added trace logger. (ported from bsnes, thanks byuu)
Update Logs
2009-11-23 15:48 JST (r123) - Replaced the file. Hopefully Lua no longer affects to AVI recording.
_________________
*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.
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
No, the ROM CRC matches well and I can watch your movie without desync.
(actually, ROM version is not a problem. Emulator must not cause such a glitch for all games, right? ;P)
Well, the state glitch seems to happen at some certain frames. For instance, it occurs at frame #1420, #1421, #1428, #1429, #1436, #1437...
It should be investigated immediately. I'll test things as soon as possible.
Edit: Traced it (WIP)
dma.cpp: while (CPU.Cycles > CPU.NextEvent) S9xDoHBlankProcessing (); // 0x7xxxx vs. 0x400
This loop increments CPU.V_Counter in insane speed. Hmm, I'm not sure how I can fix the issue yet, though...
Edit: bah, it also happens on 1.51 v6: ...not true, forget about that.
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
Voted yes, nice abuse of a mysterious glitch.
Bugreport (snes9x-rr 1.43 svn106 win32):
1. begin playing the movie with the latest svn build of snes9x-rr 1.43
2. pause it around frame 1900, then make a new savestate, and load it
then, graphics will be messed, and the run will be desynced. The savestate of the latest version is incomplete possibly? I wonder :o
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
Yes vote, for many interesting strategies (especially for boss battles).
Little off topic: on this game, emulator's lag counter doesn't work at all, so I tried to create my own lag indicator with Lua. It works poorly (misses some lags), but it might be better than nothing.
local lagcount = 0
local lagged = false
local lagged_prev = lagged
memory.registerexec(0x8100, 3, function()
lagged = false
end)
emu.registerbefore(function()
-- I cannot put the following line to emu.registerafter,
-- because of snes9x's poor timing :/
if lagged then lagcount = lagcount + 1 end
lagged_prev = lagged
lagged = true
end)
gui.register(function()
gui.text(2, 32, ""..lagcount, (lagged_prev and "red" or "white"))
end)