spotlessmind1975 / midres

An isomorphic gamelib for retrocomputers
https://retroprogramming.iwashere.eu/midres_library
14 stars 0 forks source link

Add support for more consoles #1

Closed eadmaster closed 2 years ago

eadmaster commented 2 years ago

I am interested in NES, SNES, PCE and the Sega Genesis.

spotlessmind1975 commented 2 years ago

Hi @eadmaster and thank you for taking the time to explore this library!

Regarding your request, do you have any target platform that takes priority over the others?

In the meantime, I have carried out a feasibility study for the four platforms you mentioned. For each one I opened a specific ticket and looked for both the C compiler and the hardware specifications:

I needed to do this task because, as you know, the MIDRES library is isomorphic, so it is strongly tied to hardware details as it does not provide abstractions. In the next few days I will deepen the various additional tickets with respect to this, in order to have a more precise idea of the timing and commitment for development with respect to these targets.

spotlessmind1975 commented 2 years ago

If the language is not a constraint for you, take a look at this open source project: https://ugbasic.iwashere.eu/

It is a Linux/Windows cross compiler based on the BASIC language,. Because it produces directly assembly code for any CPU (currently NMOS 6502 and Zilog Z80, next Motorola 6809, and more), it can virtually support any computer and console, while it provides a single language with unified primitives, the same as MIDRES. Moreover, it is written with the same philosophy as the MIDRES library, so it is highly efficient because it does not introduce unnecessary abstractions.

Have a nice day!

eadmaster commented 2 years ago

Thank you as well for looking into this, since it was split i am closing this now to focus on the new issues.

do you have any target platform that takes priority over the others?

I guess the order of popularity of these systems is: NES > SNES > Genesis/SMD > PCE (just look at these numbers :-))

If the language is not a constraint for you, take a look at this open source project: https://ugbasic.iwashere.eu/

yes, i've used a bit of gw/qbasic back in the 90s, but now i definitively prefer C over it.

spotlessmind1975 commented 2 years ago

Thank you so much @eadmaster for the feedback, you were very kind!

I reorganized the issues to ensure they all have a declared milestone. Also, I added the NES issue in the "things to do" project, so that at the next available slot I can start development.

https://github.com/spotlessmind1975/midres/projects/1 (reload the page if you cannot see it)

For the remaining targets it is however necessary to conclude the feasibility study because, even if the library is quite mature, not all consoles have an effective and efficient C compiler, and often the available specifications are incomplete. So I cannot guarantee that they are implementable, at least at this stage.