don't click here

Developing a new engine

Discussion in 'Engineering & Reverse Engineering' started by FireRat, Dec 26, 2017.

  1. FireRat

    FireRat

    Nah. Fuck it. Banned
    48
    10
    8
    Chile
    Mobius Evolution 2
    Hello again.
    Please be patient if I take too long to reply any questions, as it's going to be very hard to get free time, working at a limited pace until February.


    A common issue with disassemblies is, many doesn't follow an ideal arrangement for advanced development, lack some documentation or even, by nature, there will be unexpected "surprise exceptions", all which makes the new program take extra unnecessary time & effort.
    At the same time, from mine part I wanted to create a new homebrew game after completing works on SVA, but forward some work first so the job gets easier afterwards (to compensate with the creative charge).

    TheBlad768, DiscoTheBat and me have been writing & arranging a fully documented cross-platform engine, for the MD, 32x and SCD consoles, including Mode 1 and the full combination. Meant to be found useful and "versatile" enough, its main goal is to keep it free and open from a legal viewpoint, so anyone could use it for Any purposes-
    In simpler words, you should be able to easily write a game for any of these platforms, and/or carefully write it for any of them.

    Technically, Build time is driven through GNU Make, under a "Build Objects / Link them" scheme. Uses open-source VASM and VLINK tools to assemble the Z80 and 68k code, plus a custom checksum generator and CD image builder. Each Makefile.[TARGET] file produces its output by fitting the Object files however does "best" (that's relative) to the Target; can automatically link objects from a previous build meant for a different Target, and for each SCD file (speeding up build process) even! The latter point counts, as long as there's no VDP-related code in said Object files, though (more on that later).
    Optimization Priority: CPU > ROM > RAM

    Some (planned) key features, these may change at any time:
    - 32x PWM driver on SH2
    • Stereo Output
    • Pan control
    • Vol control
    - SMPS-derivaten sound driver
    • Z80-based version
    • Not sure about a 68k-based version?
    - 32x Framebuffer renderer on SH2, 256 color mode
    • "Corner Pin" support
    • Scaling & Rotation support
    • DMA-based sprites list (for anything that doesn't require any of the above)
    • "Basic" 3D support (Using flat color texture, no lighting) (Besides need to investigate a lot yet, may and up using ".blend to custom" format converter or similar method))
    - SCD ASIC library
    - SCD ISO-9660 library, V2 or Joliet (whatever turns best, need to investigate)
    - SCD builds shall run core engine from 12MHz SubCPU
    • > The other way could be optional (?)

    Regarding the presentation, it's meant to, overall, look like this:
    https://i.imgur.com/5y5fBLg.png
    Here I'm showing the first inmediate drawback about SubCPU support: There's no direct way to communicate to VDP, and it's necessary to send the command to MainCPU; either "inmediately", or to its VInt-based queue, however necessary. This is why the commands and data is sent through macros: It would build differently if the target was SCD.

    With some help from Mercury's Sonic Physics Guide, a first "ideal" release would include a character with Sonic's physics, a few other objects to play with, and a scroll engine capable of drawing in individual 16x16 blocks and 128x128 chunks modes. It will be up to you to replace it with a Sonic the hedgehog's spritesheet and make a fangame upon it, or create something new.

    This project is still taking shape, so any comments would be appreciated. For you, is any of this a good idea in the first place?
    Please excuse any ignorance from mine part, especially regarding terminology, but, isn't the intention what counts?
     
  2. This sounds awesome, when do you think you'll have some footage to show off?
     
  3. Shoemanbundy

    Shoemanbundy

    Researcher
    1,094
    30
    28
    Chicago, Illinois
    selling shoes
    A semi-Game Maker for the Genesis would be more than welcome. I can't tell if this is specifically only oriented towards those with coding experience, but regardless it sounds like a project I'd want to see more of.