don't click here

"Neto Boot Loader" Loader for ATGames and TecToy Mega Drive 17

Discussion in 'General Sega Discussion' started by Esrael, Jan 22, 2018.

  1. Esrael

    Esrael

    Neto Tech Member
    304
    257
    63
    Brazil, São Paulo, Guarulhos
    Neto Assembler Editor / Sonic 2 Delta / Neto MD-DOS
    Recently i had posted a response to this topic I picked up the Sega Genesis Classic Game Console with the 80 built in, but I think this deserves its own topic.

    Whats is "Neto Boot Loader"?

    "Neto Boot Loader" is an alternative loader which I have developed to be used in new Mega Drive Tec Toy, which improves sound quality, fixes some bug in games and if you have a compatible SD Card can enable save feature for some S-RAM based games.

    Since the new Mega Drive uses the same RedKid 2500 processor which was and still is used in a lot of ATGames consoles, these features are applicable to these consoles too.

    How to install:
    -Create a directory "TECTOY" in Root dir of your SD CARD;
    -Inside "TECTOY" directory, create four others directories "DATA", "ROM", "SAVE" and "SYS" (this one is only required by the new Mega Drive).
    -Inside the "ROM" folder create up to 16 directories whit any name and inside these dirs place up to 99 ROMs.

    After setting up your SD Card structure copy the "MDI.BIN" file to "GAME" dir or "TECTOY\SYS" if you own the new Mega Drive.

    For save game feature, I strongly recommend placing all games in same dir, since the Loader uses 8x3 filename to generating "SAVE" files and placing the ROM games in distinct directory can generate the same 8x3 filename and you will have "SAVE" files overwriten by the last played game.


    Using Save Feature:

    -After playing a compatible game ( http://www.neto-games.com.br/rom_hack/neto_boot_loader.php#neto_boot_loader_sram ) press menu (reset on some models) button quickly (avoid holding menu button for a long time, this can corrupt SRAM), reload "Neto Boot Loader" and wait for the SRAM content to be saved on SD (you will see a counter running up to 0x00004000 over my name "NETO") and you can turn off or continue playing.


    For anyone interested in Neto Boot Loader i have made a dedicated page ( http://www.neto-games.com.br/rom_hack/neto_boot_loader.php ) for the project where you can find some details about features, and some instructions of usage. The page is in Portuguese Brazil, but has some pictures which can show all features.
    There is a built-in debugger where you can try other settings for processor Red Kid 2500.
    To Access "Debug Mode" during message "Inicializando Neto MD-DOS..." press "A", Then select a Game normally, after game is loaded to SD-RAM and before run you will be directed to debug screen.
    In debug press "START" to Access Programming Mode and then use:
    A - To select parameter
    B - To increase high Byte
    C - To increase low Byte
    D Pad - To increase / decrease Low and High Byte.
    "A+Start" to apply Settings and Start Game
    The debug mode was developed to allow advanced users testing and reporting the best settings found and can be used for future updates.
    The debug mode can be used to adjust other games which can have problems like slow Music. Changing parameter FM SP: can fix this.
    Notices:
    In portable versions the debug mode only works when connected to a TV set.
    Since the debug mode change some processor parameters, setting wrong parameters can hang the system, just press reset and try again.

    Known compatible versions:
    0 1152 2010/03/22
    0 165 2011/10/26 13:14:47
    0 497 2013/03/04
    0 894 2017/05/22 17:08:41


    Best regards.
    -------------------
    Neto
     
  2. Overlord

    Overlord

    Now playable in Smash Bros Ultimate Moderator
    19,218
    965
    93
    Long-term happiness
    Has to be said again - thank you for making these units more usable.
     
  3. Since this is the official topic for the Bootloader now...


    I have noticed some audio issues in a few games, and graphic/gameplay issues in others.

    For audio, running Sonic Spinball on the SD with the loader corrects the sound, but speeds it up way faster than normal. The Little Mermaid on Genesis has a weird audio issue with one instrument that should not be there.

    Sonic Megamix 3.0 runs, but can crash at any time and has various graphical glitching. Also some platforms don't behave properly, like bridges or platforms, they turn the character at a odd angle and push them off, making them impossible to stand on.

    Sonic 3D Blast Director's Cut works...until you reach the bonus stage. The game crashes upon entering one.


    Thanks again for all your hard work, Esrael!
     
  4. Esrael

    Esrael

    Neto Tech Member
    304
    257
    63
    Brazil, São Paulo, Guarulhos
    Neto Assembler Editor / Sonic 2 Delta / Neto MD-DOS
    Thanks, for reporting.

    Supporting hacks is hard because they can use tricks which can work in emulator and fails on real hardware. I remember when I tried running Sonic 2 Delta first time in the old Mega Drive and get a lot of crashs due to some invalid processor comnands and access.

    For Sonic 3D Blast I am trying to fix the Special Stage issue.

    For Sonic Spinball I will verify, but you can try fix this by running Debug Mode and change Parameter FMSP, and if get a better value, post here and it can be added in future release.

    Don't forget verifying the official page for latest release. The current release has more games with SRAM support.
    http://www.neto-games.com.br/rom_hack/neto_boot_loader.php


    Best regards.
    -------------------
    Neto
     
  5. Hello again, I see the Boot Loader has been updated a lot since we last spoke.

    I put together a small document of things I have noticed regarding various games and hacks.

    I hope it can be useful - http://www.mediafire.com/file/oi19c4ea4lae71o/ATGames+Sonic+Hack+Issues.doc

    Also I am just wondering, since the Master System games can run on the Genesis with Passthrough, could MS roms work through the Boot Loader? It would greatly extend the amount of games that could be played on it.
     
  6. Esrael

    Esrael

    Neto Tech Member
    304
    257
    63
    Brazil, São Paulo, Guarulhos
    Neto Assembler Editor / Sonic 2 Delta / Neto MD-DOS
    Thanks for reporting.

    If you have a Facebook account, you can follow me to receive notifications about latest updates.

    Yesterday, was released a new version which include fixes to more games.

    The latest versions includes a fixes to old issue with "Contra Hard Corps" game were scrollings fail. This was caused by a wrong setting in RedKid, which was fixed by the "Neto Boot Loader".

    For SMS Games, the mode 4 is required, but I can't find a way to enable or if Redkid support this mode.

    The Cave Story is still in development and fixes is done by fixing/changing game code in real time. Doing this to a current in development game will fail in code shifting due to new builds.


    Best Regards:
    ---------------
    Neto.
     
  7. Lanzer

    Lanzer

    The saber calls for its master... Member
    6,845
    3
    18
    Glendale, AZ
    Living life.
  8. My unit is almost identical to yours, and runs the loader fine. Just make sure its set up properly on the SD card and you will be good to go.

    Follow the step by step instructions (With pictures!) on the website here:
    http://www.neto-games.com.br/rom_hack/neto_boot_loader.php
     
  9. BigEvilCorporation

    BigEvilCorporation

    Member
    29
    0
    0
    UK
    Tanglewood
    Hi! I did some of my own research on this thing (and the Flashback, too) before discovering this post, so I thought I'd share my findings:

    https://bigevilcorporation.co.uk/2018/04/18/taming-the-atgames-firecore/
    https://bigevilcorporation.co.uk/2018/04/22/taming-the-atgames-flashback/

    This is mostly geared towards homebrew developers and ROM hackers to make their games compatible with these two machines (without the end user needing to modify their devices) but perhaps there's some titbits of info in there to help with the firmware efforts.

    I plan to install Neto Bootloader on my own device and see if there's anything I've missed, too!
     
  10. Overlord

    Overlord

    Now playable in Smash Bros Ultimate Moderator
    19,218
    965
    93
    Long-term happiness
    While we're talking about Tanglewood, thank you for looking into a way to determine you're on this thing and to try and fix the broken sound remotely - regular users likely will never see the Neto firmware.
     
  11. Esrael

    Esrael

    Neto Tech Member
    304
    257
    63
    Brazil, São Paulo, Guarulhos
    Neto Assembler Editor / Sonic 2 Delta / Neto MD-DOS
    Here is the some info about Red Kid 2500 Addresses:
    $00000000 - (0004) Normal Mode / (0017) Redkid Programming Mode

    $00B00012 - Z80 Clock
    $00B00018 - PSG Clock
    $00B0001A - M68K Clock

    $00B00202 - SD Card Bus Request
    $00B00248 - SD Card Data Port Status
    $00B00300 - SD Card Data Port

    $00B01000 - Display / TV Color System
    $00B01006 - TV Sub carrier Tunning
    $00B0100A - Jump Control
    $00B0100C - Game PAL Bit
    $00B01018 - TV Vertical Pos
    $00B0101E - Game Export Bit / VDP Scroll Setting
    $00B01028 - M68K Offset
    $00B0103C - SDRAM Offset
    $00B01054 - Yamaha Clock / FM SP

    The Best values are:
    $0607 - $00B00012 - Z80 Clock
    $0003 - $00B0001A - M68K Clock (27 Mhz / 3 ) = 9 MHz
    $0077 - $00B00018 - PSG Clock
    $2620 - $00B01054 - FM SP / Some games run better with other values ( Out Run -> $2616, Comix Zone $261B ).


    $00B01000 - Display / TV Color System
    $03A0 - LCD Mode ( Portable Models )
    $0425 - PAL-M Sub Carrier
    $04A0 - NTSC Sub carrier
    $04A6 - Pal Sub Carrier

    $00B01006 - TV Sub carrier Tunning - Best Settings
    $0000 - For NTSC And PAL-M
    $0020 - For PAL

    $00B01018 - TV Vertical Pos
    $0015 - Internal LCD
    $001C - For NTSC And PAL-M
    $0035 - For PAL

    $00B0101E: ( Export Bit / Some VDP control )
    Bit 0 - Controls VDP - This bit came enabled by default which cause the Contra Hard Corps scrolling Bug.
    Bit 2 - Controls Export - 0 Export / 1 Local.

    $00B0100C - Game PAL bit
    Bit 2 - 0 NTSC / 1 PAL.


    For Cartridge only version I have made a beta firmware for Everdrive. In This vídeo ( https://youtu.be/391Jx_-uC2s ) you can see a chinese clone with Everdrive X3 running with my custom firmware.

    Best Regards.
    -----------------
    Neto
     
  12. BigEvilCorporation

    BigEvilCorporation

    Member
    29
    0
    0
    UK
    Tanglewood
    Excellent, thank you! I've just taken delivery of one of the handheld versions, too. I'll try those recommended values and see if they're any better than mine.

    Were you able to determine a safe way to test if a game is running on one of the affected versions? Reading from any of the $BXXXXX addresses on real hardware hangs it. I'm going to try DMA-ing from those areas to see if it's a little more lenient. Writing to the latch at $00000000 and reading back again just gives the first word of the stack vector (seems to allow for writing but not reading from that address).
     
  13. Esrael

    Esrael

    Neto Tech Member
    304
    257
    63
    Brazil, São Paulo, Guarulhos
    Neto Assembler Editor / Sonic 2 Delta / Neto MD-DOS
    I've got this issue too. When running my hex debug on Real Hadware can't past from $Axxxxx adresses without hanging it. The way which I use is checking regular RAM area adresses. Theses ATGames run some code from main RAM and don't clear them all before running a game. During startup of "Neto Boot Loader" I do the folowing check to RAM:

    Code (Text):
    1.  
    2.                 cmpi.l  #Jump_Control, (M68K_Ram_Start+$8C28)
    3.                 bne.s   Clear_RAM
    4.                 cmpi.l  #M68K_Clock, (M68K_Ram_Start+$8EBA)
    5.                 bne.s   Clear_RAM
    6.                 cmpi.l  #Z80_Clock, (M68K_Ram_Start+$8EC2)
    7.                 bne.s   Clear_RAM        
    8.                 move.w  #Console_New_MD, D3      
    9. Clear_RAM:    
    10.  
    If all of them return true, then Mega Drive 2017 was found and I can check Cartridge SLOT.

    The main issue with these ATGames consoles which uses the Offset $00000000 as some input setting is with some games which has bugs in code which try to write at $00000000. The Lion King has a bug in the level "The Stampede" where the games try to write to offset $00000000, whichs puts Red Kid in wrong Status and messes up the sound engine. When running from SDRAM, i have made a patch in real time to fix the code where the game try to write in to $0000000, but in cartridge for obvious reason this can't be done and the game messes up after the level "The Stampede".


    The other issue is SDRAM access. When running a game from SDRAM some VDP Access requires a Z80 bus request or you will get garbled graphics and the games eventually crashes. Eg:
    move.w #$8174, ($FFC00004)

    Doing this command through cartridge port is fine, but doing this same command through SDRAM sometimes fail if Z80 bus is not resquested before.

    Doing This:
    Code (Text):
    1.  
    2.   move.w  #$0100, (Z80_Bus_Request)                    ; $00A11100
    3.   move.w  #$8174, ($FFC00004)
    4.   move.w  #$0000, (Z80_Bus_Request)                    ; $00A11100
    5.  
    is sufficiente to Allow game not crashing when running from SDRAM.

    Most of games run fine through Neto Boot Loader, because I am doing patches in real time adding these z80 requests when running from SDRAM.

    Best Regards.
    -----------------
    Neto
     
  14. BigEvilCorporation

    BigEvilCorporation

    Member
    29
    0
    0
    UK
    Tanglewood
    Superb, thank you!

    I've also been doing some investigation of the Flashback console, if you're interested. So far I've discovered that the Z80 doesn't emulate the LD IYH instruction, and requires the whole IY register to be patched. Thankfully this was only used once in my whole codebase (but that one place caused no sound from my game at all, since it was setting the upper $40 base address for accessing the YM). It also doesn't emulate SSG-EG, again...
     
  15. Esrael

    Esrael

    Neto Tech Member
    304
    257
    63
    Brazil, São Paulo, Guarulhos
    Neto Assembler Editor / Sonic 2 Delta / Neto MD-DOS

    Thanks, I don't have Flashback version, but these findings are interesting and I will follow yours research.

    Best Regards.
    -----------------
    Neto
     
  16. MartiusR

    MartiusR

    Member
    A bit late, I know - but big, big thanks for providing this nifty solution (as well as for some short synopsis in english language -by some bizzare reason I had problem with making it correctly basing on YT guide, despite the fact that everything was shown. I've used it on handheld version from 2017 and it's working well.

    By the way - is there some method to "extract" games included to the system? I see that those are not available for application (which is totally reasonable, as it is considered by handheld as "rom")?
     
  17. Esrael

    Esrael

    Neto Tech Member
    304
    257
    63
    Brazil, São Paulo, Guarulhos
    Neto Assembler Editor / Sonic 2 Delta / Neto MD-DOS
    I don't have the latest portable model.
    I do know which by sending some commands is possible to run internal games (The "Memory Menu" do this for built-in games on Mega Drive 17) with improvements provided by "Neto Boot Loader", but these commands are device specific. Since there are a lot of versions of hardware, is hard to make support for running internal games.

    Best regards:
    ----------------
    Neto
     
  18. Wafer

    Wafer

    Find me on Twitter instead Member
    255
    75
    28
    I'm curious as to what's required for a ROM to be compatible with save games with this loader. I have some homebrew I'm working on that relies heavily on being able to save data between sessions, and I'd like to eventually have a mobile platform that I can run it on. Is it a limitation of using even/odd/word aligned data, or is the loader checking for eg. specific serial numbers to support?
     
  19. Esrael

    Esrael

    Neto Tech Member
    304
    257
    63
    Brazil, São Paulo, Guarulhos
    Neto Assembler Editor / Sonic 2 Delta / Neto MD-DOS
    About "Neto Boot Loader":
    -Only a few games are compatible with save, because some kind of patch are necessary to allow the write to extended RAM.
    The latest version is 1.46a, but was discontinued in favour of the new "Neto MD-DOS (Neto Mega Drive Operating System)" which i am working.

    About "Neto MD-DOS (Neto Mega Drive Operating System)" :
    -Unlike "Neto Boot Loader" which enable saves only to a few games, this new system will save data to any game which have the value 'RA" at address 0x1B0 and the size of saved file is defined at address 0x1BA, but without some changes in read and write Save RAM routines, the save file will have only $FF bytes. Your SAVE RAM routine must read and write to address 0x400000 up to 0x40FFFF, for writes, byte mode are not allowed and trying to write a byte to Extended Memory will have no effect.
     
  20. Wafer

    Wafer

    Find me on Twitter instead Member
    255
    75
    28
    @Esrael Thanks for the response! Sounds as though MD-DOS will be able to handle what I have in mind.