What's new
Hey guys,
Please keep conversation limited to my project in this thread, so we can all keep better track of what's going on.

I've been busy being a little homeless and moving and job hunting for a bit. I've just locked in a new job, so some semblance of stability should be returning soon.
I'm working on network configuration for the new codebase right now, which will be pretty trivial to backport once I've finished that particular code.
The new code is A LOT better, though not exactly stable or completely functional yet. I'm still pretty embarrassed that I put that other one out.

I'd say if the old one actually works for you and you like it, keep using it.
Else, use a different one until I finish up actually making it viable for a range of use cases. I'm actually going to nuke the download link until then.
 
Hey guys,
Please keep conversation limited to my project in this thread, so we can all keep better track of what's going on.

I've been busy being a little homeless and moving and job hunting for a bit. I've just locked in a new job, so some semblance of stability should be returning soon.
I'm working on network configuration for the new codebase right now, which will be pretty trivial to backport once I've finished that particular code.
The new code is A LOT better, though not exactly stable or completely functional yet. I'm still pretty embarrassed that I put that other one out.

I'd say if the old one actually works for you and you like it, keep using it.
Else, use a different one until I finish up actually making it viable for a range of use cases. I'm actually going to nuke the download link until then.
Good to hear from ya bro. I am glad things are starting to come back together.
 
Good to hear from ya bro. I am glad things are starting to come back together.
Thanks man!
The last number of months have been a pretty stressful roller coaster of all sorts of life events, and I'll be happy to be able to move forward again.
I hope the things that you mentioned are going well also.
 
I have no github setup but got bored and started working on this project again as I ended up blowing up my raspbian installation recently. I found a better way for game checking which you might want to look into and should be able to apply to ACNTBoot:

Python:
    def __get_name(self):
        'Get game names from NAOMI and ATOMISWAVE rom file.'
        try:
            fp = open(self.filepath, 'rb')
            fp.seek(65280)
            naomicheck = fp.read(12).decode('utf-8').upper()
            if naomicheck == 'SYSTEM_X_APP':
                fp.seek(65328)
                self.name = fp.read(32).decode('utf-8').rstrip(' ').lstrip(' ')
            else:
                naomicheck = 'true'
            fp.close()
        except Exception:
            print(self.filename + " not Atomiswave going to try NAOMI ")
            naomicheck = 'true'
        if naomicheck == 'true':
            try:
                fp = open(self.filepath, 'rb')
                fp.seek(0x30, os.SEEK_SET)
                self.name = fp.read(32).decode('utf-8').rstrip(' ').lstrip(' ')
                fp.close()
            except Exception:
                print("__get_names(): Error reading names from" + self.filename)

...


def is_naomi_game(filename):
    'Determine (loosely) if a file is a valid NAOMI or Atomiswave netboot game'
    try:
        fp = open(filename, 'rb')
        fp.seek(65280)
        header_magic = fp.read(12).decode('utf-8').upper() # Uppercase for normalization
        fp.close()
        if header_magic == "SYSTEM_X_APP":
            return header_magic == 'NAOMI' # This header SYSTEM_X_APP seems to always exist and Atomiswave game titles are stored at 65328 and is 32 bytes long

    except Exception:
        print("This is not an Atomiswave game.")

    try:
        fp = open(filename, 'rb')
        header_magic = fp.read(5).decode('utf-8').upper() # Force header to uppercase as NAOMI 2 file header is 'Naomi'
        fp.close()
        if header_magic == 'NAOMI': # Doing a test against header_magic for sanity
            return header_magic == 'NAOMI'

    except Exception:
        print("is_naomi_game(): Could not open " + filename )
        return False
Code:
...snip...
Looking for new NAOMI games
Game title should be Dirty Pigskin Football          
	Unable to identify gdrom_dirtypigskin_v3.bin
Game title should be The Rumble Fish                 
	Unable to identify gdrom-rumblefish.bin
This is not an Atomiswave game.
	Unable to identify VirtuaStriker3.bin
Game title should be NEOGEO_BATTLE_COLISEUM          
	Unable to identify NeoGeoBattleColliseum.bin
Game title should be TORE TORE SUSHI                 
	Unable to identify gdrom_Sushibar.bin
Game title should be SAMURAI SPIRITS 6               
	Unable to identify SamuraiShowdownVI-SamuraiSpirits_v4.bin
This is not an Atomiswave game.
	Unable to identify VirtuaFighter4FinalTuned_verb.bin
Game title should be NetSelect                       
	Unable to identify gdrom_salmankt_JVS_OK_BIOS_OK_Video_OK.bin
Game title should be GUILTY GEAR isuka               
	Unable to identify ggisuka_fixed.bin
Game title should be BASKETS                         
	Unable to identify gdrom_anmlbskt.bin
Game title should be METAL SLUG 6                    
	Unable to identify mslug6.bin
Game title should be The Rumble Fish 2               
	Unable to identify gdrom_rumblef2_v4.bin
Game title should be THE KING OF FIGHTERS XI         
	Unable to identify gdrom_KOFXI_controles_JVS_OK_Video_OK_v4.bin
Game title should be THE KING OF FIGHTERS NEO WAVE   
	Unable to identify KingOfFightersNewWave.bin
Game title should be THE KING OF FIGHTERS XI         
	Unable to identify gdrom_KOFXI_v5.bin
This is not an Atomiswave game.
	Unable to identify Naomi_DIMM_4.01_Update.bin
Game title should be METAL SLUG 6                    
	Unable to identify mslug6_orig.bin
This is not an Atomiswave game.
	Unable to identify BeachSpikers.bin
Game title should be Dolphin Blue                    
	Unable to identify dolphinblue.bin
Game title should be HOKUTO NO KEN                   
	Unable to identify FOTNS_Naomi2_Fixed.bin
 
Last edited:
Hi @Smurph @sammargh...

Any chance to revisit the Games that won't allow for auto reset when netbooting issue?
Unfortunately it seems like the previous solution only worked for the LCD shield, and not for the web interface...
I have played around a bit with the python code myself to improve things, but I am no expert...
It's simple enough however I believe Smurph's interface already has GPIO relay support. I do not have the boards setup personally however there are options to enable it via the settings. You might need to update your naomiweb installation.

I'll look into adding it to my script in the other thread for LCD shield with the other bugs that have come up
 
Thanks for the tip @sammargh! I'll look into it :)

This project is back into "If you know how to set up raspibian and are familiar enough with linux, go for it because I'm not ready for mass support yet" status.
I *THINK* ACNTBoot should work somewhat, and is about at the level of functionality, or slightly more than NaomiWeb was. Use at your own risk of course, as some things will be broken/nonfunctional.
I'm trying to make this as easy as possible to plug new functionality into (e.g. magcard emulators or maple bus peripheral emulation).
Once I get messaging working correctly, I'll need to switch it up to a full-on message bus and implement logging/status messaging.
Then I'll have to put in some basic authentication options.

I haven't given up! I've just been busy getting spun up at work. Turns out that a career switch-up is quite a learning curve :P
 
So who actually tried the ACNTBoot fork and can tell me what works and what doesn't? :)
 
Does anyone have a version of this that also works with the adafruit touch screens??

Similar to what this guy is ding:

s-l500.png
 
I got one of those Touch displays for another project and I've been pretty disappointed with the touch aspect of the display... it's super inconsistent where a light breeze will act like you're slamming your fist against it and other times you can be hammering on the display and it wont register the touch. the image quality is pretty shitty too, though that doesn't matter all that much. for the price it's not worth it, buy a $15 used iPod Touch and run the web interface and not only will it look and react better but it's cheaper and wireless.

the character display and keypad is still the superior option IMO because it just works.
 
Agree, I use @chunksin version of the web interface and its by far the one I like the most. This is a request for someone that I did the reset mod for.

Also, has anyone worked on a version of the web interface to push the same or different games to multiple Naomis?

On that note, the way I do the Pi power/reset mod now is to install a USB port right on the filter board. Makes things so much simpler. The fuse mod was done by Ken.

396F89DA-5573-490B-B30F-A201767FEE38.jpeg
 
I am currently using the Adafruit color touchscreen setup but want to try the version that lets you use your smartphone.
 
So I've been working on this off and on, mostly with trying to figure out what message bus solution would be best for future compatibility, but still be flexible enough for all the things I want to do with it.

I've got some big ideas for this, and even if I don't have the time to follow through on everything, I want to make sure I leave a platform that will be easy to plug more functionality into by other authors.

On that subject, those of you who have looked at the source: Any comments or suggestions for what I can do to reach this goal?
 
Also, has anyone worked on a version of the web interface to push the same or different games to multiple Naomis?
I'm laying the groundwork for that in my project currently. It's next on my list after I get a fully modular architecture implemented for UIs, Loaders, etc.
Add in @Derick2ks auto-reset fix for one...
Where can I find that, and what is it? Is that the thing that handles the 10 hour limit or whatever? Or is that GPIO reset related? I need more information about this. I'm not quite as active on here as I should be, I apologize for that.

EDIT: Nvm, it was linked earlier in this thread. looking at it now

Primarily, I'm more concerned at the moment with making things easy for future additions/implementations.
 
GPIO reset
Simple fix


Code:
                GPIO.setmode(GPIO.BOARD)
                GPIO.setup(40, GPIO.OUT)
                GPIO.output(40,1)
                sleep(0.4)
                GPIO.output(40,0)
This is all that needs to be added to support it. It's set up to use pin 40 which should not be a problem on any version of the Pi that is supported.

This should be implemented on all builds by default, its a simple way to support the AW converted games that unfortunately lock up the naomi when you want to launch/load another game.
 
GPIO reset
Simple fix

Code:
                GPIO.setmode(GPIO.BOARD)
                GPIO.setup(40, GPIO.OUT)
                GPIO.output(40,1)
                sleep(0.4)
                GPIO.output(40,0)
This is all that needs to be added to support it. It's set up to use pin 40 which should not be a problem on any version of the Pi that is supported.

This should be implemented on all builds by default, its a simple way to support the AW converted games that unfortunately lock up the naomi when you want to launch/load another game.
Ah. Yeah, that's in there already. Thank you! :)
 
Back
Top