Posts for Dacicus


Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
Our team didn't finish, but here are some notes about our findings: Small Mode Horizontal movement is based on the formula x += 0x80 - ($17), where ($17) is the value of RAM address 0x17. Positive values move to the right and negative to the left. The value of 0x17 itself depends on player input (two bytes at 0x0A08 are the speed) and damage boosting (two bytes at 0xB7 are the speed and two bytes at 0xB9 are acceleration). Movement via controller input increases the speed by 1/16 of a pixel per frame (ppf) every frame, up to a max of 2 ppf. Damage boosting seems to depend on the type of enemy. The following code is relevant:
02:D050:  20  JSR $CEE1
02:CEE1:  DF  BBS5 $C9,26 ; Branch to CEFE if bit 5 of $C9 is set
02:CEE4:  B9  LDA $CF18,Y
02:CEE7:  85  STA $B7     ; x_subspeed
02:CEE9:  B9  LDA $CF1B,Y
02:CEEC:  85  STA $B8     ; x_speed
02:CEEE:  B9  LDA $CF1E,Y
02:CEF1:  85  STA $B9     ; x_subspeed_delta
02:CEF3:  B9  LDA $CF21,Y
02:CEF6:  85  STA $BA     ; x_speed_delta
02:CEF8:  B9  LDA $CF30,Y
02:CEFB:  85  STA $BB
02:CEFD:  60  RTS
02:CEFE:  B9  LDA $CF24,Y
02:CF01:  85  STA $B7     ; x_subspeed
02:CF03:  B9  LDA $CF27,Y
02:CF06:  85  STA $B8     ; x_speed
02:CF08:  B9  LDA $CF2A,Y
02:CF0B:  85  STA $B9     ; x_subspeed_delta
02:CF0D:  B9  LDA $CF2D,Y
02:CF10:  85  STA $BA     ; x_speed_delta
02:CF12:  B9  LDA $CF30,Y
02:CF15:  85  STA $BB
02:CF17:  60  RTS
I don't have any notes about the significance of bit 5, but $CF18 corresponds to 0x4F18 in the ROM file. You can see that the addresses are 3 bytes apart, which suggests that there are three types of enemies with regard to damage boosting. Big Mode x += ($1145) - A, where A is 0x40 if facing to the right and 0xC0 if facing to the left. Movement via controller input is at a constant speed of 2, while damage boosting is the same as in Small Mode. Hitboxes The following Lua script displays hitboxes for a number of things--enemies, barriers, player--as well as HP for enemies that have HP. I didn't figure out the hitboxes for some things, however, such as boss weapons.
Language: lua

memory.usememorydomain("Main Memory") -- RAM local addr_pc_x_hb_l = 0xA0 local addr_pc_x_hb_r = 0xA1 local addr_pc_y_hb_u = 0xA2 local addr_pc_y_hb_d = 0xA3 local addr_en_num = 0x001D local addr_en_actv = 0x0980 local addr_en_y_lo = 0x0FEA local addr_en_y_hi = 0x1060 local addr_en_x_lo = 0x10D6 local addr_en_x_hi = 0x114C local addr_en_type = 0x131D local addr_en_hp = 0x14D6 -- ROM local addr_en_y_len = 0x57A9 local addr_en_x_len = 0x56D3 local function draw_en_hitbox() local num_en = memory.readbyte(addr_en_num) for i = 0, num_en - 1 do local en_actv = memory.readbyte(addr_en_actv + i) local e = memory.readbyte(addr_en_type + en_actv) local e_y = memory.read_s8(addr_en_y_hi + en_actv) * 0x100 + memory.read_u8(addr_en_y_lo + en_actv) local e_y_len = memory.readbyte(addr_en_y_len + e, "ROM") local e_x = memory.read_s8(addr_en_x_hi + en_actv) * 0x100 + memory.read_u8(addr_en_x_lo + en_actv) local e_x_len = memory.readbyte(addr_en_x_len + e, "ROM") gui.drawBox(e_x - e_x_len, e_y - e_y_len, e_x + e_x_len, e_y + e_y_len) local en_hp = memory.readbyte(addr_en_hp + en_actv) if en_hp > 0 then gui.drawText(e_x, e_y, string.format("%2x", en_hp)) end end end local function draw_pc_hitbox() local x_hb_l = memory.readbyte(addr_pc_x_hb_l) local x_hb_r = memory.readbyte(addr_pc_x_hb_r) local y_hb_u = memory.readbyte(addr_pc_y_hb_u) local y_hb_d = memory.readbyte(addr_pc_y_hb_d) gui.drawBox(x_hb_l, y_hb_u, x_hb_r, y_hb_d) end while true do draw_pc_hitbox() draw_en_hitbox() emu.frameadvance() end
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
There's software from Adobe called Projector Skeleton that can run DCR files. I tested Blix through level 5. When loading the DCR file, it did request several other files, but it seemed to work even without them. Note that I had to close Projector Skeleton via the Task Manager, since the usual methods did not work.
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
Lobsterzelda
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
Proposed solution: Add
g = AudioDub(g, audio)
after the line
g = ms ? g.AppendSegment(ms_base, ms_start, ms_end, ms_format, hd).ConvertToRGB32() : g
audio is the WAV file as loaded in the LEGACY STUFF / PSXjin section of encode.avs. My understanding of the default AVS file behavior is that the audio dubbing for PSXjin gets done before the multisegment import, so the multisegment import generates a video track with no audio. Does anyone else have a different explanation for the error that EZGames69 posted?
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
Did the decade start in 2010 or 2011 for the purpose of this thread?
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
Forest2TS wrote:
how can i reconvert fm2 back to fcm
As per the page I linked earlier, you put the fm2 as the first file (input file) and the fcm as the second (output file).
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
Forest2TS wrote:
1. .nmv (nintendulator), .fmv (famtasia), and .vmv (VirtuaNES)
According to the nesmock page, it does not support writing VirtuaNES files currently.
Forest2TS wrote:
3. I got it to work, but I don't know how I can straight-up convert files to another file.
When you say that you got it to work, what did you get it to do? You do need to use it from the command line. Spikestuff posted the basic syntax earlier.
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
1. What formats are you trying to convert the FCM files to? 2. How comfortable are you with using the command line? 3. What have you tried so far to get nesmock to work?
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
Alyosha wrote:
I thought the intent here was to wait for the next bizhawk release so the encode is fixed at the end?
Sorry, I misunderstood if that was the intent. I'll make new encodes after the release, if desired.
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
EZGames69 wrote:
If you dont mind me asking, how is everyone enjoying the game?
It's fine.
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
I'm also in favor of option 2.
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
RationalMonkey wrote:
Is there a way to transfer a game from FCEUX to BizHawk?
Try File -> Movie -> Import Movies...
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
<KennyMan666> We're here living in 2019 while this guy is in 3019
Current Projects: TAS: Wizards & Warriors III.
Post subject: Re: Streaming encodes directly to Twitch.tv
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
Masterjun wrote:
It is important to mention that this will stream the encode output, not the real time emulator: If you fast-forward, the stream will keep playing in regular console framerate.
This means that fast-forwarding will generate the same amount of data but over a shorter time period, right, just like dumping an AVI at various emulator speeds?
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
The8bitbeast wrote:
Happy TASing from 🐻🐦 [image]
Those are the type of useful findings that we want on the game's resource page.
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
Actually, he gave us a choice, like the game gives you multiple paths to choose from: EDIT: BTW, what are the contest rules regarding changing any of these settings?
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
MUGG wrote:
It will probably be all for nothing because this will happen.
But "MMMM" didn't win DTC6...
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
CPU players usually do not generate input in the form of button presses. Rather, they follow some algorithm that the programmers put in place to determine their behavior. You will likely need to analyze the game's code to find out if that trick is possible for a human to do.
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
FilipeTales wrote:
Hello Dacicus, TiKevin83, negative seven-, may i join in your team?
Sure.
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
TiKevin83 wrote:
Dacicus, negative_seven, and I (TiKevin83) will be teaming up as team "A Team Name" - GLHF everyone!
Confirming this.
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
You beat me to hosting this. Anyway, I'm interested in participating. I don't have a team currently, so please put me in the individual list.
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
Lil_Gecko wrote:
Now let's say that "blablabla" reaches the far right of the screen. Is there a way for the rest of the text to go automatically underneath blablabla
It sounds like you want the text to wrap to the next line automatically, but the reference for the current built-in Lua functions does not seem to have such an option.
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
MUGG wrote:
As said, I'm checking if lines of A exist anywhere in file B. I tried with string.find(s, pattern) but pattern misbehaves if I want to search for characters like - * % $ [ ] etc.
Have you tried the additional arguments to string.find from the official documentation? I think that the plain argument might do what you want: string.find(s, pattern, 1, true)
Current Projects: TAS: Wizards & Warriors III.
Editor, Experienced Forum User, Published Author, Player (67)
Joined: 6/22/2005
Posts: 1041
Probably not the most elegant solution, but this works with some test files I made:
Language: lua

local file_name_A = "C:\\path\\to\\A.txt" local file_name_B = "C:\\path\\to\\B.txt" local file_A, file_B, line_A, line_B local matched_lines = {} file_A = io.open(file_name_A, "r") file_B = io.open(file_name_B, "r") if (file_A ~= nil) and (file_B ~= nil) then file_A:close() file_B:close() for line_A in io.lines(file_name_A) do for line_B in io.lines(file_name_B) do if line_A == line_B then table.insert(matched_lines, line_A) end end end file_A = io.open(file_name_A, "w") for i = 1, #matched_lines do file_A:write(matched_lines[i]) file_A:write("\n") end file_A:close() end
Also, please be aware of this issue regarding file reading.
Current Projects: TAS: Wizards & Warriors III.