Sonic and Sega Retro Message Board: GerbilSoft - Viewing Profile - Sonic and Sega Retro Message Board

Jump to content

Hey there, Guest!  (Log In · Register) Help

Group:
Tech Member: Tech Members
Active Posts:
2221 (0.49 per day)
Most Active In:
Engineering & Reverse Engineering (361 posts)
Joined:
11-January 03
Profile Views:
18326
Last Active:
User is offline Yesterday, 10:47 PM
Currently:
Offline

My Information

Member Title:
RickRotate'd.
Age:
26 years old
Birthday:
May 18, 1989
Gender:
Male Male
Location:
USA

Previous Fields

Project:
Gens/GS
National Flag:
us
Wiki edits:
158
SA2 Emblems:
9001

Latest Visitors

Posts I've Made

  1. In Topic: Need testers for Gens and Gens/GS ROM compatibility

    Yesterday, 07:41 PM

    View PostLocalH, on 15 July 2015 - 09:29 PM, said:

    After you do bugtesting and get your initial release out, wanna work in some PYL MD? :v:

    I've completely forgotten about that. Maybe I could do some stuff on it. (Getting initial tiles for the squares and shuffling working would be a nice start.)

    Anyways, a status update:
    • The Qt menu system has been completely rewritten to use Qt Designer. This makes it easier to maintain. This won't have any effect on the Tech Preview, which is SDL only, but it was something that was bugging me.
    • Screenshots are now saved with a fairly extensive set of metadata. (More on that in a bit.)
    • Initial Pico support has been merged back into gens-sdl-basic-frontend. Pen support is still missing; it will be added in before release.
    • D-pad constraints have been reimplemented. When enabled, this prevents U+D or L+R from being pressed at the same time. Some games get confused by this. In the Gens/GS II implementation, if e.g. U is held down and then D is pressed, U will remain held. D will only be "pressed" once U is released. Gens' implementation always had U and L beat out D and R. Note that this does not affect the Pico controller, since Pico has four discrete buttons instead of a D-pad.
    • Fixed a timing issue on Windows that caused the framerate to be reported as 50-56 fps while the actual game ran too fast. This was caused by a rounding error with QueryPerformanceCounter; the frequency was divided by 1,000,000 before dividing the counter in an attempt to prevent overflow. Since it's using integer arithmetic, this caused significant rounding errors on most machines. (My XP VM has a 3.58 MHz frequency; a Windows 7 PC I was using for testing has a 3.25 MHz frequency.) This issue didn't occur on Wine because Wine has a hard-coded frequency of 10,000,000.
    • Fixed various errors found by cppcheck.

    For PNG metadata, I've added the following fields (with an example from a screenshot I just took locally):
    • sBIT: Significant bits per sample: R=8, G=8, B=8
    • pHYs: Pixel size: 4x4 per unit
    • tIME: Last modification time: 25 Jul 2015, 00:34:08 UTC
    • tEXt: Text data: "Description"
    • tEXt: Text data: "Creation Time" = "2015:07:24 20:34:08"

    The "pHYs" field indicates the aspect ratio. For H40 (320px) mode, this is 4x4. For H32 (256px) mode, this is 5x4, since the pixels should be rendered wider. Note that most image viewers simply ignore this field, so don't expect H32 images to be stretched to the correct aspect ratio when viewing them.

    The "Creation Time" chunk is used for Windows 7, which shows it in Windows Explorer. Note that it's in local time, whereas the tIME chunk is UTC.

    The "Description" field has much more data. (I might change it to "Comments", since Windows XP doesn't show "Description" but appears to show "Comments".)
    Emulator: Gens/GS II
    Version: 0.0.0 (git: gens-sdl-basic-frontend/fb58bc07)
    OS: Linux 4.1.2-gs_laptop
    System: MD
    ROM: Sonic 2 (Rev.01)
    ROM CRC32: 7B905383
    
    

    Currently, there's no way to configure what fields are set, but the Qt UI will add some options. Among other things, there's code to save the system username (and/or display name), but this is disabled by default. I will probably also add an option for a "custom" username instead of using the system username.

    A good chunk of the metadata is there for debugging purposes. For example, if someone posts a screenshot of a game not working properly, but has no idea how to determine what revision of a ROM they have, the metadata will indicate the CRC32, which can then be looked up.
  2. In Topic: Let's criticise classic Sonic gameplay.

    21 July 2015 - 12:27 PM

    View PostFelik, on 21 July 2015 - 12:24 PM, said:

    View PostAyu Tsukimiya, on 21 July 2015 - 12:18 PM, said:

    It's a shame that Boom was such a terrible game, because now Sonic Team might think that games with different playable characters are automatically doomed to be trash.

    The very next game released by Sonic Team right after Sonic Boom has practically all the modern playable cast and 3 different playstyles.

    And runs at a solid 5 fps. :colbert: (Also, on my phone at least, it occasionally stops drawing frames for several seconds, then interpolates all the actions between the two frames, usually resulting in failure.)
  3. In Topic: Sonic Lost World (Wii U) Hacking & Resources - Tools are public

    17 July 2015 - 04:43 PM

    View PostAtendega, on 17 July 2015 - 02:26 PM, said:

    Sega should honestly just release all their games on PC, even if they just do a quick, badly optimized port. Though we know for a fact that Lost World was originally being developed for PC, so it would probably be pretty easy to do.

    They were originally prototyping it on a PC because that's how you write games. Unless you think that Nintendo's developers run Visual Studio on the Wii U instead of using a standard desktop computer...

    EDIT: Bonus points if you think the existence of a Windows version of Pikmin that's present on the Pikmin disc is a proof that Nintendo was going to release it for Windows, instead of simply being a debugging leftover.
  4. In Topic: Need testers for Gens and Gens/GS ROM compatibility

    14 July 2015 - 02:54 PM

    Some random notes:

    • The technical preview will not show the Storyware cartridge onscreen. It'll only show the VDP output. Once I get the regular UI working, I'm thinking of making it look somewhat like a DS emulator: in a 640x480 window, the "bottom screen" will be the tablet, and will show the 320x240 display. The "top screen" will be the Pico Storyware cartridge. Assuming high-res scans, increasing the window size will improve the quality of the Storyware viewport, and the video rendering will simply scale based on the rendering settings.
    • I'll add initial pen support tonight. The pen will be controlled by the mouse. Left-click = pen-click; right-click = switch the logical viewport from tablet to Storyware and vice-versa. A message will appear onscreen indicating the change.
    • Basic support for SMD-format ROMs has been added (gens-sdl-basic-frontend branch), because I can.

    Sometime this week or next week, I'm going to rebuild my Windows toolchain and look into getting an automated build server running, which will allow everyone to test Gens/GS II without compiling it themselves.
  5. In Topic: Need testers for Gens and Gens/GS ROM compatibility

    11 July 2015 - 08:56 PM

    Today's update: The SDL port is now using SDL 2. Had to do some conversions for the new SDL 2 scancodes to the Gens keycodes, which are based on SDL 1.2. (May end up just redoing the Gens keycodes based on SDL 2, but that will break existing configurations. Not a huge issue...)

    Among other things, SDL 2 provides:
    • The "software" renderer is actually implemented using OpenGL or Direct3D, depending on platform. The main renderer will still be the custom OpenGL renderer, so this isn't a big deal.
    • The window can now be resized in OpenGL (and Software) mode without flickering.
    • Windowed fullscreen is now supported. Main advantage of windowed fullscreen compared to "regular" fullscreen is it doesn't change the display resolution, so things don't get randomly shifted around.


    Tomorrow I'll look into doing a quick hack for basic Sega Pico support. This will consist of disabling the Z80 and YM2612, removing the $A00000 I/O area, and adding the custom $800000 I/O area, plus using the mouse to emulate the tablet. Note that anything depending on ADPCM interrupts won't work until ADPCM is implemented.

    EDIT: [2015/07/12 12:10 AM EDT] New branch gens-sdl-pico based on gens-sdl-basic-frontend. It has a new class EmuPico, based on EmuMD, that's currently nearly identical except it doesn't use the Z80 or YM2612. I'll add support for the $800000 I/O area tomorrow. This branch will be merged back into gens-sdl-basic-frontend before the Tech Preview is released.