News: 11 March 2016 - Forum Rules, Mobile Version
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - tomaitheous

Pages: 1 2 3 4 [5] 6 7 8 9 10
ROM Hacking Discussion / Re: Necromancer text compression scheme
« on: September 06, 2013, 08:47:50 pm »
If I understand it correctly, it sounds like a table-based Huffman tree.  The ones I've seen before were hard coded, so it's hard to tell.  :-\

 There appears to be a 4 byte header that sets all of this up, but the intro to the game puts hard/immediate values into place of reading from a header table. But in game, appears to be all called from a header table. Hopefully not too many areas/events are hardcoded.

 Edit: Ok, what was throwing me for a loop, was the offsets inside the huffman tree. I figured only variable/values would be there. But that's not the case. Weird. Guess I've never seen it implemented like this (or rather, I never wrote a huffman tree like this). If bit is 1, add the value from the tree to the pointer. If clear, skip two bytes in the table. Actual 'character' is encoded in 3 bytes in the table (pointer accumulators are 2 bytes) and this 'character' also preceded by #$01 - so that the pointer is incremented to align with the char (and not a terminator value of #$ff).

 They kind of missed an optimization. They could have added 'words' to the table entries as well, but appears only single characters are in the entry (once a valid character is read, the position into the tree is reset). Maybe 2 and 3 char groups don't lend well to Japanese/hiragana?

ROM Hacking Discussion / Necromancer text compression scheme
« on: September 05, 2013, 09:59:00 pm »
I've done quite a bit of work with compression schemes in the past, but this one is pretty unfamiliar to me. It appears to be some sort of binary tree compression scheme.

 There's two varaibles; a down counter (always re/load with a value of $07, check looks for $ff value) and an byte bit mask.

 There's also a table/block. Each entry is either 2 or 3 bytes long (though there might be an entry that is 4 bytes long, IIRC). The ending byte is always $FF. So something like $97,$ff,$07,$ff,$85,$ff. #$ff is the terminator of each entry (which means skip to the next). The mask corresponding bit determines whether to skip 1 byte or two bytes. If two bytes, then the value from the 'block' or tree is added to the tree/block pointer, helping incrementing it. When a non termination value is read, it's passed to the string build routine, and then the tree pointer is reset back to the beginning of the block.

 There's also another block and pointer. When the down counter expires, this pointer is incremented and the mask is reloaded. Neither the base nor the index of the tree access system is reset at this point.

 There's another layer of mechanism in place as well. At the very start of the call, there's a variable that stops the string routine from accumulating. When this variable expires (decremented; 00 = expired), then it will copy valid string data to the string build routine. Else, it just accumulates the second pointer position.

 Soo... does this description sound familiar? Sound like a binary tree compression scheme? I'm on the verge of figuring it out; just need to trace back to the top layer function calls and hopefully begin test (and text) extract trials. Any advice or comments?


General Discussion / Re: Leaving the house
« on: September 01, 2013, 08:46:13 pm »
"All the time!"
I kinda hate staying at home/in house. I go out every chance I get; except for coding. Coffee, book/reading, thrift shops, lunch, breakfest, to just ride my motorcycle around, etc. I'll drag my laptop around with me, if I need to do 'puter stuff.

Script Help and Language Discussion / Re: [PCE] Nazo no Masquerade
« on: September 01, 2013, 08:41:33 pm »
Hey MooZ! Nice work ;)

Personal Projects / Re: Mega Man 9 NES
« on: September 01, 2013, 08:38:03 pm »
If this gets completed, I'd definitely do a nes2pce conversion :)

Nice work :D Do you have the actual music format figured out as well?

General Discussion / Re: Steak Preference
« on: May 15, 2013, 07:54:14 pm »

I just superheat the pan for three minutes (applying a nice layer of aerosol butter before and after), then plop the steaks on for 90 seconds a side. When that's over, I use tongs to sear the edges for 10 seconds apiece; done!

Bloody steaks are yum.

 Yup. That's how I cook my steak. Unless I grill it, but it's the same way; super heat the grill and sear each side for 60-90 seconds (depending on the thickness). You have to eat it pretty soon afterwards, before it cools too quickly.

 That said, Outback Steak house makes some disgusting steaks. I had one where I couldn't even finish it, and I've eaten my share of shit-ass-food before.

ROM Hacking Discussion / Re: Rondo of Blood Audio tracks editing
« on: May 07, 2013, 01:50:31 pm »
Yeah, some PCECD games LBA for audio tracks and some use track #'s (the bios call excepts both arguments).

Personal Projects / Re: Megaman 1 and 2 for PC-Engine upgrade/hack
« on: October 25, 2012, 01:48:35 pm »
That is amazing, Mega Man 2 is by far the greatest entry in the series, can't wait to eventually play it on my Duo. Wily Wars was so shit with that delay between control input and action. Also excited about the PCE version of the soundtrack, I love the PCE's sound chip and can't wait to hear Wily's Theme pumped out through it!

 You mean remade PCMPSG tracks using the PCE upgrades? I'd have to find someone willing (and capable) of remaking the tracks for PCE's PCMPSG, but CDDA/redbook hack would be cake to do. Otherwise, it sounds the same (for the most part; I still need to complete the audio emulation):

Personal Projects / Re: Megaman 1 and 2 for PC-Engine upgrade/hack
« on: October 23, 2012, 12:38:54 am »
Megaman 2 is up and running (and beatable).

No front page news about this? Sad.....

Personal Projects / Re: Megaman 1 for PC-Engine upgrade/hack
« on: March 09, 2012, 04:25:31 pm »
I was getting a little dismayed by the lack of doc/info on the game. I mean, the partial disassembly doc is great (and that other one too that gives offsets to specific data) - but they're not complete. I had found the routine that takes the map meta-tile and gets the real tiles from - but not the upper level format. Thanks to Rock and Roll Megaman editor by Dan, I was able to binary compare mods and fill in the missing gaps of info I needed. So I think I have everything I need to hack the tilemap format to extend the total tiles from 256 (8x8) to 768. I should be able to run a hook that'll access alternate room format data to add extended attribute functions (upper tiles, higher number BG subpalette, etc) as it decodes. Hmm.. gonna see if I can get rid of the NES attribute block with something cleaner. Just gotta figure out how I'm gonna break it...


 Ok, I think I got this figured out. The tilemap routine writes a packet of data to a buffer. The buffer contains X number of packets to update vram with during vblank. Format: ppu address, tilemap data (16bytes), ppu attribute address, attribute byte. The hook reads an alt room data that shadows the current selected room, and if the alt room data points to extended tiles and/or attribute data - it alters the ppu *addresses* in the packet. I will use invalid ppu address that the backend emulation code would read and alter the tilemap and attribute data on the fly as it converts it to native PCE tilemap data. So for example: address $279f would become $479f or 679f etc.

Personal Projects / Re: Megaman 1 for PC-Engine upgrade/hack
« on: March 07, 2012, 09:59:58 am »
Neither : When I click on the exe, nothing happens. I think I've also tried to do it from the command line and nothing happened either. I haven't tried this for a while and I don't think I've tried to attach file extensions, so I should maybe try again.

 Ahh, yeah. Running without any parameters on the command line (or having windows run it with file associated with it), it'll do nothing, Like someone else mentioned, there is a GUI frontend program for it, but to be honest it's pretty minimal and once you setup the file extension to be associated with the mednafen executable - it's not even needed. So yeah; just right click the PCE file and clock 'open with', then select browse and find the mednafen.exe file. If you never associated a project for the file type windows, then 'open with' won't show up as an option. In that case, just double click the file and choose 'select from program list', then proceed to browse for file the mednafen.exe and choose it.

 Most stuff can be setup in the .CFG, but gamepad setup can be done in the emulator itself once it's running a rom. Just press F1 for directions once it's up and running. Alt+d gets you into the debugger and alt+1, 2,3, or 4 switches the viewable window/overlay (there's a document explaining all the debugger options and such).

Personal Projects / Re: Megaman 1 for PC-Engine upgrade/hack
« on: March 06, 2012, 11:46:06 pm »
Medfaden is probably the best PCE Emulator, it's just that for some unknown reason it completely refuses to run on my PC, not even an error message or anything, it just does nothing when I try to launch it.

 For hucard roms or for CD ISO games? For roms, I just associate the file extension in windows to the exe file. Cutting out the need for command line options. Of course I have everything setup in the CFG file for filtering and scanlines too.
For CD games, you need to setup the command line just once, or at least manually edit the CFG once - for the BIOS rom to run them. Then, do like with PCE files and just associate CUE files with the mednafen.exe file in windows. Instant launch when you double click the CUE file. If the emulator itself has a problem trying to load/run a game, it outputs a std.txt or err.txt or some file like that. And it's usually placed in the directory of the file you're trying to run (assuming you've setup the EXE as an association file type for the rom).

 Yeah, that emulator Bizhawk looks like it's for TAS type stuff - not a debugger. I recognize one authors on the project too, that hangs out in the mednafen channel.

 A little demo of the sprite work:

 I originally was hacking the meta tile related stuff for the sprites, but I've decided that I'm just gonna put a hook in there instead and read from my own tables - to write to $200 for sprite DMA (NES side).

Personal Projects / Re: Megaman 1 for PC-Engine upgrade/hack
« on: March 06, 2012, 11:07:26 am »
The project sounds cool, but I don't have a PCE and I don't even know anything about the hardware so I'm afraid I can't be of much help.
Is there any good PCE debuggers (I means emulators with advanced debug options) around ? I remember that the set of PCE emulators was extremely limited, none of them ran really well on my computer and this made me loss the interest in this platform.

 The current WIP of mednafen is the only real debugger for the PCE. It takes a little bit to get used to the single window overlay (you have to switch through windows/overlay) as opposed to multiple window layout, but it's a pretty powerful debugger once you get past that. That, and mednafen is the most accurate emulator so far for PCE/TG16. I'm dev'ing for the real console, so that means a lot to me. I don't know what the requirements are for it, but I'm sure it's higher than some of the other PCE emulators like Magic Engine or such.

 As far as a PCE, the CD base systems is where the worth of the system as... and unfortunately it gets expensive for CD setups. If you interested, I have a spare TG16. The HuC6280 is just a modified R65C02S, so you'd feel right at home with having 6502 experience. The single BG layer makes for some nice challenges IMO, similar to the NES.

Yeah, the original hucards used gloptop roms:

 But I was looking into using tsop flash rom. From what I've seen for measurements of TSOP 28F series, they're supposedly 1mm in height. That's 0.040 inches. And from what I measure, it looks like I have 0.050 room. If I need more room than that (thinner bottom), I'll have to go the Arcade Card (hucard) route/method and just have a complete whole through the plastic but with a thin metal cap to cover it up on the bottom. Like so:

Except I wouldn't need such a long PCB.

Personal Projects / Megaman 1 and 2 for PC-Engine upgrade/hack
« on: March 05, 2012, 04:34:49 pm »
I'm creating a project thread just for this game. Instead of the other thread that's about all NES conversions.

 Anyway, this thread is about upgrading Megaman 1 for the PCE with new sprites and tile abilities, adpcm sound FX (and psg as well), and CDDA or new PCEPSG sound track. Basically a hack for the hack ;)

 Please note, I'm looking for people that have experience with hacking Megaman on the NES. Low level hacking experience (changing code and such). I've seen some impressive hack work done out there for MM1 and I'd like to add some features to MM1 as well. Two completely new bosses would be nice (maybe like the Powered Up ones, I dunno). If you're interested, then lets talk. Or if you know someone with the skills, send them over here or to my blog (here would probably be better). You/they/him/her don't need to have PCE knowledge or experience. I'll handle that side of things. For them, it would be no different than hacking the original NES rom.

I don't need pixel artists just yet, I'll use place holder graphics to test out the upgraded functions meantime. I'll put out a want ad for that once I'm ready for that. I'm also gonna modify an existing sound engine for the PCE and use it for PCEPSG. So I'll be looking for some chiptune talent to make PCEPSG music remixes. Yeah, CDDA (red book) will be an option - but I happen to like the PCE sound chip and would to do something with it for this game.

 The game's primary platform is SuperCD. I do plan to make a hucard version (though it'll lack ADPCM and red book upgrades) for the mere fact that I'm going to be making some of my own hucards by hand/DIY project. I've love to have a hucard of the upgraded game for myself.

 The actual WIP stuff so far:

 - New title intro sequence (animation and such)
 - Easy mode for wusses ;)
 - save feature
 - 16 color sprites and tile
 - 16x16,32x16,32x32 sprite cell sizes
 - extended palette num to 8 for sprites
 - ADPCM sound fx
 - red book audio

It might be hard to notice at first, but the debugger pic there is showing off the 16x16,32x16, 32x32 sprite hacking that I've already started doing (old pic yeah, I'm too lazy to post something more recent).
I hacked the meta sprite table to just reference a single 32x32 sprite frame in memory. It means the sprite work is no longer limited to 8x8 cells of the original meta table.

 Edit: blog @

Personal Projects / Re: Rondo of Blood PSP dub for PC-Engine.
« on: February 11, 2012, 06:51:31 pm »
You're gonna call it TurboGrafx instead of PC Engine, right? That's what Nintendo did on the VC. BTW, the Japanese VC release has the original intro.

 Just a bit of info. TTi switched the name form TurboGrafx-16 to Turbo Duo for Super CD games (when the Super CD card and Duo system came out in the US). TG16CD or TGCD are usually terms for CDROM (2.0) games. They were trying to rebrand the name of the system and new softs.

Personal Projects / Re: Rondo of Blood PSP dub for PC-Engine.
« on: January 26, 2012, 12:58:22 pm »
Hmm. I thought I'd left off ending punctuation for the other ferryman and was doing the same for consistency, but that appears to be incorrect. I'll add it in (there's room for it).

 But the center alignment just seems strange to me for some standard dialogue. Other games don't do normal in game text boxes with center alignment (that I'm aware of off hand, though I'm sure there are exceptions. And probably good reasons for the exceptions). At least, for direct dialogue. And especially for only two lines of text. If there were no ending punctuation, I guess then center alignment would look a little more appropriate.

 I ripped the SJIS directly from the ISO for the end credits:

堀川 仁
鉄炮塚 葉子
本田 あつ子
村田 博美
安田 亜紀江
石丸 博也
( )

Personal Projects / Re: Rondo of Blood PSP dub for PC-Engine.
« on: January 25, 2012, 11:21:48 pm »

It has to do with how the game loads sections of the level from the CD. I originally had it coded and tested with Maria, and the main call hook as still there for Richter, but the receiving end of the hook wasn't there on Richter's section. So the game just crashed. And since Richter's SAT sheets are bigger than Maria's, I couldn't just replicate the hook routine in the same spot/sector for his data/chunk. So I moved it somewhere else that has no tie to either of them. It's fixed now.

Pages: 1 2 3 4 [5] 6 7 8 9 10