Absolute beginner learning to code for a specific platform?

Discussion in 'Game Development General Discussion' started by TerdFerguson, Apr 22, 2016.

  1. TerdFerguson

    TerdFerguson ls ~/

    Joined:
    Apr 27, 2015
    Messages:
    664
    Likes Received:
    353
    Something I always thought would be really cool is building two PCs with really old motherboards, installing Windows NT 4.0 and the Windows CE development kit for Dreamcast. And use them as a dev box over serial connection to two different consoles

    My main question of this thread is where does an absolute beginner start learning to code C++ for Windows CE on the Hitachi SH4?

    I'd like to start writing my first Hello World programs on the Dreamcast using CE. But I know that it's more complicated because I'd have to do calls to direct draw to display the text

    I also think learning to code for Sega 32x would be pretty cool. Hopefully a few people can point me in the right direction
     
  2. Braintrash

    Braintrash Peppy Member

    Joined:
    Nov 5, 2011
    Messages:
    303
    Likes Received:
    24
    If you are an absolute beginner, I think you need to understand some concepts and things first:

    1. You are putting your hand in a pit of snakes that will define a part of your life if you don't quit. Which means, lot of time will be spent, will be hard and even awful, but once you got the hang of it, very rewarding.

    2. Each language is what it is: a language. Think about it like if you are learning Japanese. You learn words, grammar, but also concepts: how Japanese people think, why, etc. Programmation is the same, a logic to grasp first if you really want to succeed. So, think of learning programmation as learning a language.

    3. Finally, you'll need to know some assembly, that will help a lot in order to program a specific processor. For that, you learn assembly concepts (pretty easy, I would even begin by that, since it paves ground for the other things), then study the processor itself while beginning to learn the language you want, so that you can make connexions in your head between the cpu and the code you learn.

    A good place to start to learn the DC specifically: http://mc.pp.se/dc/
     
    Woofmute likes this.
  3. RedRingRico

    RedRingRico Rising Member

    Joined:
    May 26, 2009
    Messages:
    50
    Likes Received:
    28
    Is there any reason you want to use Windows CE specifically? Your first program could be to print "I am a Windows CE program" to a serial console, it doesn't necessarily have to be rasterised text on your display. There are helper functions for text rendering, anyway. Though I am not familiar with DirectX prior to 7, so don't quote me on that =P.

    I have no experience but do you need two Windows machines, plus a development kit for the Dragon SDK?
     
  4. TerdFerguson

    TerdFerguson ls ~/

    Joined:
    Apr 27, 2015
    Messages:
    664
    Likes Received:
    353
    Well my main reason for wanting to try is to eventually porting Xash3D and OpenMW to Windows CE and DirectX on the Dreamcast. There really hasn't been much homebrew using CE either


    Well I have two coders cables, and two Dreamcasts, so that'd make it easy to dabble in making two consoles communicate with each other. There's a lot of tools for debugging, I have to figure out how to get most of them to work over serial, I think someone would have to code a transport layer dll specifically to use on a retail console

    Having a Katana would certainly help because then you wouldn't have to burn hundreds of test build CDs for every minor change

    I'd eventually want to get a Katana as long as they stay under the 1k margin which even still is really pricey
     
  5. TerdFerguson

    TerdFerguson ls ~/

    Joined:
    Apr 27, 2015
    Messages:
    664
    Likes Received:
    353
    I'm also pretty sure you can get the actual OS to run by making a platform builder BSP for the Dreamcast hardware. You could probably even legally distribute the BSP, then someone can build it using platform builder and buy an actual Windows CE Genuine key
     
  6. RedRingRico

    RedRingRico Rising Member

    Joined:
    May 26, 2009
    Messages:
    50
    Likes Received:
    28
    Ah, now I see. I'm actually in the process of installing the Windows CE SDK (2.1) to see what the development process is like, so I may be able to help you.

    Wouldn't you only need to burn a CD if content changes rather than the game executable? I'm not familiar with homebrew development methods outside of using a BBA or burning a CD, so I may be completely wrong.
     
  7. TerdFerguson

    TerdFerguson ls ~/

    Joined:
    Apr 27, 2015
    Messages:
    664
    Likes Received:
    353
    Well whether I make a small change in a text file i still have to burn a CD to run it again. Dreamshell doesn't support WinCE

    That would be cool. You can use the "image configuration tool" to add and remove any WinCE components your application might use, and use DC-Tool(included in sdk, not the homebrew dc-tool) to boot and download your release directory (WCEDreamcast\release\retail) to the katana. And everytime you compile something in vc++ it automatically boots and downloads the program and OS image to the katana

    There's a whole crapton of other tools to, i'd imagine it'd be pretty neat to use it with a katana. Try out the tech demos
     
  8. TerdFerguson

    TerdFerguson ls ~/

    Joined:
    Apr 27, 2015
    Messages:
    664
    Likes Received:
    353
    A port of OpenMW theoretically could also be crafted to be compatible with all of the games that use the creation engine. Xash3D doesn't have multiplayer yet so there's not much point yet. But the idea of that is cool enough for me to dabble in programming for this as a hobby

    Since both of those engine's use cmake, would setting cmake to cross compile with the compilers in the Dragon SDK do anything?
     
    Last edited: Apr 24, 2016
  9. RedRingRico

    RedRingRico Rising Member

    Joined:
    May 26, 2009
    Messages:
    50
    Likes Received:
    28
    Would OpenMW even be possible on the Dreamcast? Especially using Windows CE, not to mention the large game save files which would span multiple VMUs. Even if it is possible, wouldn't it be a better idea to use KallistiOS instead? Then you could contribute to the main project without miring the repository with the grey area that is official, unlicensed development tools. I don't want to discourage you from your pursuit, though.


    I ran a few samples on the Katana and it's a pretty straightforward operation.
     
  10. Trident6

    Trident6 Spirited Member

    Joined:
    Oct 17, 2015
    Messages:
    119
    Likes Received:
    55
    Well to be honest, you are trying to learn a multitude of things here, none of which are straightforward.

    C/C++ - probably the easiest part of what you want to do
    Graphics programming - very difficult
    Embedded systems programming - not hard, not easy either
    Reverse engineering - very difficult

    All of this for a system that requires highly specialized development hardware and software, for a target that is no longer supported, whose parent company (Hitachi) went out of business, and has little to no documentation or developer community to help you out.

    I understand what you are trying to do but I think you need to be realistic about your goals. Each one of the things listed above will take a year or more to gain any level of proficiency at, and when you throw them all together you are bound to get overwhelmed and give up.

    I would start by getting comfortable with C/C++ until you can easily pass some of the 300 level online courses that Stanford, MIT, etc have posted about Computer Science/Computer Engineering. Then maybe work on porting some existing open-source projects from Windows to Linux or vice-versa and see the amount of effort involved. If you can make that happen, then start targeting some of the well documented embedded Linux or bare-metal dev boards with large developer communities. Depending on how that works out then start focusing on more archaic targets (SH-4).

    I'm sure that's not what you want to hear, but if you really want to be proficient at something like this you need to plan on spending a number of years mastering the skills required.
     
sonicdude10
Draft saved Draft deleted
Insert every image as a...
  1.  0%

Share This Page